У нас есть тестовое веб-приложение, развернутое в Weblogic 10.3.5. Веб-приложение содержит сервлет, который использует jax-ws для вызова веб-службы, развернутой в той же веб-логике. При доступе к сервлету возникает следующее исключение:
Two classes have the same XML type name "address". Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address
at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address com.sun.xml.ws.developer.MemberSubmissionEndpointReference.addr
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference
this problem is related to the following location:
at javax.xml.ws.wsaddressing.W3CEndpointReference$Address
at private javax.xml.ws.wsaddressing.W3CEndpointReference$Address javax.xml.ws.wsaddressing.W3CEndpointReference.address
at javax.xml.ws.wsaddressing.W3CEndpointReference
Я скопировал логику сервлета в общий класс Java и запустил его. Испытание прошло успешно. Так что проблема должна заключаться в веб-приложении.
Я пробовал много способов, модифицировал weblogic-application.xml, чтобы добавить раздел Preference-Application-Packages, как показано ниже, но все равно не работает.
<prefer-application-packages>
<package-name>javax.xml.ws.*</package-name>
<package-name>javax.xml.bind.*</package-name>
<package-name>javax.jws.*</package-name>
<package-name>javax.namespace.xml.*</package-name>
<package-name>javax.xml.soap.*</package-name>
<package-name>org.apache.xerces.*</package-name>
<package-name>org.apache.commons.*</package-name>
<package-name>com.sun.xml.*</package-name>
</prefer-application-packages>
Кто-нибудь может помочь мне в этом, потратил несколько дней на эту ошибку, никакого прогресса. Спасибо миллион за ваш ответ заранее.
Обновление 1
В веб-приложении мы не хотим использовать метро, просто используем jax-ws, загруженный с java.net, и помещаем jaxws-rt.jar, jaxws-api.jar, jaxb и другие связанные банки в ухо/приложение. -INF/библиотека.
Инструмент анализа загрузчика классов WebLogic (wls-cat) сообщает о конфликте классов и предлагает добавить пакеты Preference-Application-Packages в weblogic-application.xml. Таким образом, мы добавляем пакеты preference-application-packages, чтобы weblogic загружал их из нашего приложения, а не из реализации weblogic jax-ws/metro.
Но все еще не работает.