Мы переносим веб-сервис SOAP с Weblogic 11g на Weblogic 12c.Клиенты отправляют заголовок SOAP, не содержащий пространства имен, который веб-служба читает и использует.Но когда мы внедряем его в Weblogic 12c, мы получаем следующее исключение:
javax.xml.soap.SOAPException: дочерний элемент заголовка 'qwe' должен соответствовать пространству имен!
17 июня 2019 г. 3:45:47 вечера com.sun.xml.messaging.saaj.soap.impl.HeaderImpl addHeaderElement GRAVE: SAAJ0131: HeaderElements debe estar cualificado por espacio de nombres
17/06/2019 15: 45: 47: 801| ERROR | FlowValidationHandler.handleMessage |FlowValidationHandler исключениепространство имен уточнено в com.sun.xml.ws.handler.SOAPMessageContextImpl.getMessage (SOAPMessageContextImpl.java:87)
Мы прочитали, что стандарт SOAP требует, чтобы элементы заголовка были квалифицированы для пространства имен, но мы не можем вносить измененияв клиентах.
Чтобы попытаться избежать этого исключения, мы используем подход, описанный в:
javax.xml.soap.SOAPException: дочерний элемент заголовка 'username' должен быть пространством именквалифицированный
Мы включили saaj-impl-1.4.0.jar и его зависимости (активации-1.1.jar, javax.xml.soap-api-1.4.0.jar, mimepull-1.9.7.jar, stax-api-1.0-2.jar, stax-ex-1.7.8.jar) в WEB-INF / lib, и мы добавили это в weblogic.xml:
<wls:prefer-application-packages>
<wls:package-name>javax.xml.soap.*</wls:package-name>
</wls:prefer-application-packages>
Номы получаем это исключение:
) длякласс, определяющий метод, javax / xml / ws / handler / soap / SOAPMessageContext, имеет различные объекты Class для типа javax / xml / soap / SOAPMessage, используемого в сигнатуре java.lang.LinkageError: нарушение ограничения загрузчика: при разрешении метода интерфейса "javax.xml.ws.handler.soap.SOAPMessageContext.getMessage () Ljavax / XML / мыло / SOAPMessage;»загрузчик классов (экземпляр weblogic / utils / classloaders / ChangeAwareClassLoader) текущего класса, es / qwe / handler / FlowValidationHandler и загрузчик классов (экземпляр) для определяющего класса метода, javax / xml / ws / handler / soap/ SOAPMessageContext, иметь разные объекты Class для типа javax / xml / soap / SOAPMessage, используемого в подписи
Есть идеи?