Как вызвать XML Calabash программно из Java
Я не могу найти пример или указание на то, как вызвать XML Calabash (реализация Xproc) для запуска из Java. Требования просты:
- Элемент списка Уметь программно определять входы и выходы.
Элемент списка Возможность работать одновременно, поскольку мы хотим, чтобы это был процесс, выполняющийся на Jetty Server
- Спасибо
2 ответа
Вы должны взглянуть на Servlex и, в частности, здесь https://github.com/fgeorges/servlex/tree/master/servlex/src/java/org/expath/servlex/processors
Надеюсь это поможет
Да, вы можете посмотреть Servlex, в частности https://github.com/fgeorges/servlex/tree/master/servlex/src/java/org/expath/servlex/processors/saxon, а точнее CalabashXProc и CalabashPipeline.
На данный момент Servlex компилирует конвейер для каждого выполнения, так как разделение времени компиляции и времени выполнения не является идеальным в Calabash. Servlex раньше кэшировал результат компиляции и сбрасывал его после каждого использования, но если два запроса приходят одновременно, то они фактически используют одну и ту же среду динамической оценки, что означает, ну, в общем, BOOM!
Норм работает над этим и добился некоторого прогресса, но я думаю, что не мешало бы ему услышать ваш голос, если вам нужно иметь возможность кэшировать скомпилированные конвейеры и оценивать несколько его экземпляров одновременно (путем записи в XProc Dev или в Calabash проблемный трекер).
Если вы заинтересованы в Servlex, веб-сайт находится по адресу http://servlex.net/. Если вы хотите запустить конвейеры для ответа на HTTP-запросы, это, вероятно, хороший выбор, так как он уже содержит много стандартного кода и позволяет писать конвейеры декларативным способом (на какой URI запроса он отвечает, он объявлен в дескриптор webapp, он обрабатывает HTTP-запрос и генерирует HTTP-ответ в виде XML-документов). Это реализация спецификации веб-приложений EXPath (ссылка на веб-сайте Servlex)
PS: извините за отсутствие прямых ссылок, но Stackru не позволяет мне публиковать более 2 ссылок (что я могу понять на самом деле...)