Der erste Aufruf des JAX-WS-Webdienstes ist zu langsam

9

Übersicht:

Zur Zeit haben wir eine Webanwendung mit mehreren Modulen darin. Wir verwenden folgenden Technologie-Stack

  1. JAX-WS
  2. Spring Rahmen (außer Feder MVC)
  3. JSF
  4. Ruhezustand

Anwendungsserver: IBM WebSphere 7.0 (Produktion), Apache Tomcat 7.0.X (Entwicklung) Wir verwenden JAX-WS-Annotationen, um eine Klasse als Web-Service zu markieren. Außerdem verwenden wir keine JAXB-Annotation in Data Objects. Wir überlassen diese Aufgabe der WS-Laufzeit.

Problemstellung:

Sobald wir die Anwendung auf Apache Tomcat bereitstellen, wird der Webdienst nicht auf AS veröffentlicht. Als Lösung müssen wir die Eigenschaft "org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter" in der Spring-Kontextdatei hinzufügen und dann beginnt der Web-Service perfekt zu funktionieren. Wenn wir die Anwendung in WAS bereitstellen, wird der Webdienst jedoch veröffentlicht, ohne dass die oben genannte Eigenschaft festgelegt wird. Wenn wir die erste Anfrage an den Web-Service stellen, antwortet es langsam, während R & amp; D dieses Problems haben wir folgende Dinge gefunden:

  1. IBM verwendet die AXIS2-Web-Service-Engine
  2. JAXB-Implementierung lädt Klassen wie className_used_in_web_service_method$JaxbAccessorM_getFieldName_setFieldName_java_util_Set from: <unknown> für alle Klassen in der Hierarchie. Dies passiert nur beim ersten Mal. Wir haben versucht, diese beim Start der Anwendung zu laden, konnten jedoch nicht erfolgreich sein. Kann uns bitte jemand helfen, dieses Problem anzugehen?
kamigenius 27.11.2012, 11:54
quelle

3 Antworten

0

versuchen Sie den Start von AxisServlet beim Start in web.xml

    
rykhan 07.01.2013 07:23
quelle
0

Haben Sie versucht, SimpleHttpServerJaxWsServiceExporter anstelle von SimpleJaxWsServiceExporter ?

zu verwenden?

Es scheint, dass SimpleHttpServerJaxWsServiceExporter den Webservice startet, sobald die Endpoint-Konfiguration erfüllt ist.

    
edubriguenti 06.03.2013 19:57
quelle
0

Sie können Ihre eigene Implementierung von ServletContextListener

erstellen

Zum Beispiel:

%Vor%

Und fügen Sie es in web.xml :

hinzu %Vor%     
Oleg Poltoratskii 28.11.2013 13:56
quelle