2016-07-07 22 views
0

Ich verwende Websphere 8.5.5 und ich habe festgestellt, dass mein erster Aufruf zu einem JAX-WS Web Services zu lange dauert, um zu antworten. Ich bekomme dies in der LOG (Trace-Ebene) und nach 15 Minuten funktioniert es. Ich habe Eclipse moxy als JAXB AnbieterWarum dauert es zu lange, um auf Websphere zu antworten, wenn ich zum ersten Mal einen SOAP Web Service (JAX-WS) aufruft?

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.] 

Antwort

0

Nun, nach viel Forschung, die ich Ich habe festgestellt, dass es scheint, ein Fehler von Websphere zu sein, weil es einige Array-Klassen zum JAXB-Kontext zum Beispiel hinzufügt (byte [], int [], String []) das Problem ist, wenn String [] der Liste hinzugefügt wird von Klassen fo r JAXB Context MOXy kann nicht umgehen und gibt diesen Fehler.

Die gute Nachricht ist, dass es durch das Hinzufügen einer benutzerdefinierten Eigenschaft in die „Generic JVM-Argumente“, da Websphere> = 8.5.5.2

Server> Servertypen> WebSphere-Anwendungsserver> Servername> gelöst werden können Management-Java und Prozess> Prozessdefinition> Java Virtual Maschine> Generic JVM Argumente

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

In den folgenden Ressourcen sie es nicht sagen, tut das aber nach dem Check In der JAXBContext-Erstellung in EclipseLink können Sie sehen, dass diese Array-Klassen nicht mehr gesendet werden und das Problem dadurch gelöst wird.

Weitere Informationen zu diesem Thema:

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 Spur zu erkennen, wie viel Zeit es JAXBContext auf Websphere erstellen nimmt können diese Protokollebene aktiviert Angabe:

com.ibm.ws.websvcs.JAXBContextTrace=all 

[7/7/16 16: 34: 28: 908 CDT] 00.000.089 JAXBContextTr 3 org.apache.axis2.jaxws.message.databinding.JAXBUtils getJAXBContext neuen JAXBContext konstruiert, die verstrichene Zeit msec: 1035