Использование Metro вместо стека Weblogic Webservices - PullRequest
0 голосов
/ 27 апреля 2011

Я пытаюсь использовать веб-сервисы Metro вместо стандартного стека веб-сервисов Weblogic, содержащегося в weblogic.jar.

Проблема возникает при попытке заставить WebLogic использовать стек Metro раньше, чем он есть.

Шаги, которые я предпринял до сих пор, - это ссылка на webservices-rt.jar в проекте. Пока я получаю эту ошибку при развертывании файла ear ....

Причина: java.lang.LinkageError: нарушение ограничения загрузчика: при разрешении поля «DATETIME» загрузчик класса (экземпляр weblogic / utils / classloaders / ChangeAwareClassLoader) ссылающегося класса, javax / xml / datatype / DatatypeConstants и загрузчик классов (экземпляр) для разрешенного типа поля, javax / xml / namespace / QName, имеет разные объекты Class для этого типа

ОБНОВЛЕНИЕ:

Самая последняя ошибка: «класс javax.xml.namespace.QName не имеет ни @WebSerivce, ни @WebServiceProvider». Странно, что он ищет @Webservice для объекта QName:

  1. Содержимое Application-Weblogic.xml

<wls:prefer-application-packages><br> <wls:package-name>com.ctc.<em></wls:package-name><br> <wls:package-name>com.sun.xml.</em></wls:package-name><br> <wls:package-name>com.sun.istack.<em></wls:package-name><br> <wls:package-name>com.sun.msv.datatype.</em></wls:package-name><br> <wls:package-name>com.sun.msv.driver.<em></wls:package-name><br> <wls:package-name>com.sun.msv.grammar.</em></wls:package-name><br> <wls:package-name>com.sun.msv.reader.<em></wls:package-name><br> <wls:package-name>com.sun.msv.relaxns.</em></wls:package-name><br> <wls:package-name>com.sun.msv.scanner.<em></wls:package-name><br> <wls:package-name>com.sun.msv.util.</em></wls:package-name><br> <wls:package-name>com.sun.msv.verifier.<em></wls:package-name><br> <wls:package-name>com.sun.msv.writer.</em></wls:package-name><br> <wls:package-name>com.sun.org.apache.xml.internal.<em></wls:package-name><br> <wls:package-name>com.sun.wsit.</em></wls:package-name><br> <wls:package-name>javax.jws.<em></wls:package-name><br> <wls:package-name>javax.xml.bind.</em></wls:package-name><br> <wls:package-name>javax.xml.soap.<em></wls:package-name><br> <wls:package-name>javax.xml.stream.</em></wls:package-name><br> <wls:package-name>javax.xml.ws.<em></wls:package-name><br> <wls:package-name>javax.xml.activation.</em></wls:package-name><br> <wls:package-name>javax.xml.annotation.<em></wls:package-name><br> <wls:package-name>javax.xml.mail.</em></wls:package-name><br> <wls:package-name>javax.xml.security.<em></wls:package-name><br> <wls:package-name>javax.xml.registry.</em></wls:package-name><br> <wls:package-name>javax.xml.rpc.<em></wls:package-name><br> <wls:package-name>javax.xml.crypto.</em></wls:package-name><br> <wls:package-name>javanet.staxutils.<em></wls:package-name><br> <wls:package-name>jp.gr.xml.</em></wls:package-name><br> <wls:package-name>org.codehaus.stax2.<em></wls:package-name><br> <wls:package-name>org.glassfish.gmbal.</em></wls:package-name><br> <wls:package-name>org.iso_relax.<em></wls:package-name><br> <wls:package-name>org.jcp.xml.dsig.</em></wls:package-name><br> <wls:package-name>org.jvnet.<em></wls:package-name><br> <wls:package-name>org.relaxng.</em></wls:package-name><br> <wls:package-name>antlr.<em></wls:package-name><br> <wls:package-name>org.apache.commons.lang.</em></wls:package-name><br> </wls:prefer-application-packages><br>

1 Ответ

0 голосов
/ 28 апреля 2011

Взгляните на использование FilteringClassLoader, настроенного в дескрипторе развертывания weblogic-application.xml.Вы можете указать WebLogic загружать классы из приложения в пользу библиотек, включенных в WebLogic.Элемент дескриптора и вы указываете пакеты Java, которые вы хотите загрузить из приложения.

Если вы используете WebLogic 10.3.4, вы можете использовать ClassLoader Analysis для анализа конфликтующих пакетов.

Проверьте мою презентацию здесь: SlideShare.net и мою демонстрацию CAT здесь: YouTube

...