0

IBM Worklight 6,2/Liberty 8.5.5.1Worklight javax/XML/пространство имен/QName

Для пользовательской реализации Webservice,

  1. Java-код был написан и jaxrpc.jar включены в серверная папка проекта прожектора

  2. При тестировании в затмении он отлично работает.

  3. Когда сборка переместилась в среду тестирования, на сервер была отправлена ​​следующая ошибка.

Invocation of init method failed; nested exception is java.lang.LinkageError: 
loaderconstraint violation: loader (instance of com/ibm/ws/classloading/internal 
/ParentLastClassLoader) previously initiated loading for a different type with name 
"javax/xml/namespace/QName"

Я понимаю, что существует конфликт. Поэтому я удалил QName.class из jaxrpc.jar, который находится в папке server/lib. Однако я мог развернуть и запустить его в тестовой среде без ошибок.

Поскольку это не является решением проблемы, так что я пытался путем удаления jaxrpc.jar с сервера/Lib, то компилятор бросает исключение в .java

The type javax.xml.rpc.Service cannot be resolved. It is indirectly referenced from required .class files 

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

Как использовать библиотеку Liberty или любой альтернативный способ решения.

ответ

1

JAX-RPC не поддерживается Liberty. Поддерживается только JAX-RS. Отправляя файл jaxrpc.jar, вы запускаете его с конфликтами классов, поскольку функция JAX-RS является зависимостью функции REST, которая требуется в Worklight. Лучшим способом является использование JAX-RS для реализации вашего веб-сервиса. Другое решение, как вы протестировали, чтобы удалить конфликтующие классы из файла jaxrpc.jar.