2016-07-07 4 views
0

Я использую Websphere 8.5.5, и я заметил, что мой первый вызов веб-сервисам JAX-WS занимает слишком много времени, чтобы ответить. Я получаю это в LOG (уровень трассировки), и через 15 минут он работает. У меня есть EclipseLink Moxy как поставщик JAXBПочему слишком долго реагировать на Websphere при первом вызове веб-службы SOAP (JAX-WS)?

jaxb.properties:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory 

javax.xml.bind.JAXBException:

Exception Description: Name collision. Two classes have the XML type with uri http://www.w3.org/2001/XMLSchema and name string. 
- with linked exception: 
[Exception [EclipseLink-50007] (Eclipse Persistence Services - 2.4.2.qualifier): org.eclipse.persistence.exceptions.JAXBException 
Exception Description: Name collision. Two classes have the XML type with uri http://www.w3.org/2001/XMLSchema and name string.] 

ответ

0

Ну, после многих исследований I «Я обнаружил, что это кажется ошибкой Websphere, потому что он добавляет некоторые классы массивов в контекст JAXB, например (byte [], int [], String []), проблема в том, что когда он добавляет String [] в список классов fo r Контекст MOXy JAXB не может обрабатывать и дает эту ошибку.

Хорошая новость заключается в том, что она может быть решена путем добавления пользовательского свойства в «аргументы Generic JVM», так как Websphere> = 8.5.5.2

Серверы> Типы серверов> Серверы приложений WebSphere> имя_сервера> Java и управление процессами> определение процесса> Java Virtual Machine > Общие аргументы виртуальной машины Java

-Dcom.ibm.websphere.webservices.jaxwsOptimizeLevelOne=true 

В следующих ресурсах это не говорит, он делает это, но после проверки Создание JAXBContext в EclipseLink вы можете видеть, что он больше не посылает эти классы массивов, тем самым решая проблему.

Более подробная информация по этому вопросу:

https://publib.boulder.ibm.com/httpserv/cookbook/WebSphere_Application_Server-WAS_Classic-Web_Services.html

http://www-01.ibm.com/support/docview.wss?uid=swg1PI14203

Log след, чтобы обнаружить, сколько времени требуется, чтобы создать JAXBContext на Websphere можно активировать определения этого уровня журнала:

com.ibm.ws.websvcs.JAXBContextTrace=all 

[7/7/16 16: 34: 28: 908 CDT] 00000089 JAXBContextTr 3 org.apache.axis2.jaxws.message.databinding.JAXBUtils getJAXBContext нового JAXBContext сконструированного, прошедшее время мса: 1035