Общие библиотеки Xcp 2.2 для служб JAVA

Библиотеки Shared Java Services Libraries — удобная функция для Xcp Documentum версии 2.2, но в данном конкретном случае она проблематична.

Немного предыстории: мне нужно выполнить миграцию с проекта 2.0 Xcp на версию 2.2. Я начал новый проект и постепенно добавлял все артефакты, пользовательские виджеты и исходники, так как миграция с 2.0 на 2.2 напрямую невозможна.

Java-модули из старого проекта находятся в Artifacts/Java Modules в виде .javamodule файлов. Каждый файл .javamodule имеет список файлов реализации, в котором указан каждый путь к содержимому необходимых файлов jar. Это хорошо, поскольку у меня есть несколько .javamodule, которые используют одни и те же библиотеки, но с разными версиями, и я могу контролировать, какие библиотеки будут использоваться для этого конкретного .javamodule.

Когда я пытаюсь сделать то же самое в Xcp 2.2, все jar-файлы сохраняются в одном и том же месте (вот почему «Общие библиотеки служб Java») и в файлах .javaservice, которые создаются автоматически (эквивалент 2.2 .javamodule), я могу' t указать, какую библиотеку jar следует использовать. Могу ли я «отменить общий доступ» к библиотекам или есть нотация .javaservice, которую можно использовать для указания конкретных библиотек jar для этого .javaservice?


person iCezar    schedule 13.09.2016    source источник


Ответы (1)


Лично я не работал над проектом, в котором использовался Designer 2.0 или 2.2, но из того, что я вижу в Designer и Release Notes, ничего не изменилось с 2.1 -> 2.2.

Когда вы создаете новую службу Java, вам необходимо указать для нее основной класс. Если у вас есть доступные классы Java для выбора класса для вашей службы Java, вы можете пропустить добавление нового jar. В противном случае вам необходимо предоставить jar с классом, который вы выберете в качестве класса для своей службы Java.

Когда у вас есть Java-сервис, вы можете использовать его в процессах или где-либо еще, где он должен использоваться.

Когда вы откроете файл *.javaservice, вы увидите, что в нем есть primaryClassName, где содержится значение, указанное вами для класса, используемого вашей службой Java.

Таким образом, ответ на ваш вопрос будет таким: каждый jar-файл, добавленный вами в приложение xCP, может использоваться для любой службы Java. Я помню, что у меня было много ошибок при разработке приложения и обширной настройке кода Java, используемого Java Services, но я надеюсь, что инженеры EMC исправили это в новых версиях. Если у вас возникнут проблемы с этим, вернитесь на SO. :)

person Miki    schedule 14.09.2016
comment
Когда вы говорите «настройка кода Java», вы имеете в виду, что вы убедитесь, что библиотеки, которые нужны двум javaservices, имеют одну и ту же версию? Если мне нужно использовать библиотеку commons-lang, а классам a.jar нужно вызывать методы commons-lang-2.4, а для b.jar нужна версия 2.3, как я могу гарантировать, что методы b.jar вызывают методы из версии commons-lang-2.3, не 2.4? - person iCezar; 15.09.2016
comment
возможно, я использовал неправильный термин. по какой-то причине я думал об изменении основного кода. вы действительно не хотите использовать разные версии одной и той же библиотеки в одном проекте, независимо от xcp или любого другого проекта Java. это кратчайший путь к аду classpath. - person Miki; 16.09.2016