2016-03-21 13 views
2

ich diese Anleitung gefolgt von Drittanbietern JAX-WS zu ermöglichen, auf WAS: http://www.ibm.com/support/knowledgecenter/SSAW57_8.0.0/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/twbs_thirdparty.html?cp=SSAW57_8.0.0%2F3-3-0-25-10-1JAX-WS nicht Auflistung der Dienste unter WAS 8.5.5

und das ist Teil meines pom:

... 
    <dependency> 
     <groupId>com.sun.xml.ws</groupId> 
     <artifactId>jaxws-rt</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    ... 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId>    
     <configuration> 
      <archive> 
       <manifestEntries> 
        <DisableIBMJAXWSEngine>true</DisableIBMJAXWSEngine> 
       </manifestEntries> 
      </archive> 
     </configuration>    
    </plugin> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>jaxws-maven-plugin</artifactId> 
     <version>1.10</version> 
     <executions> 
      <execution> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>wsgen</goal> 
       </goals> 
       </execution> 
     </executions> 
     <configuration> 
       <sei>com.example.myService</sei> 
       <genWsdl>true</genWsdl> 
       <keep>true</keep> 
       <resourceDestDir>${basedir}/src/main/webapp/WEB-INF/wsdl</resourceDestDir> 
       <sourceDestDir>${basedir}/src/main/java</sourceDestDir> 
     </configuration> 
    </plugin> 

myService.java:

@WebService(
     targetNamespace = "...", 
     name = "...", 
     serviceName = "...") 
public class MyService { 
    @WebMethod 
    public String req1() { 
     return ""; 
    } 
} 

WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
    <listener> 
     <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> 
    </listener> 

    <servlet> 
      <servlet-name>...</servlet-name> 
      <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> 
      <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
      <servlet-name>...</servlet-name> 
      <url-pattern>/...</url-pattern> 
    </servlet-mapping> 

WEB-INF/sun-jaxws.xml

<?xml version='1.0' encoding='UTF-8'?> 
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'> 
    <endpoint name='...' implementation='com.example.myService' url-pattern='/...' ></endpoint> 
</endpoints> 

Die Anmerkung ist korrekt deaktiviert und die wsgen die Artefakte und die WEB-INF/wsdl Ordner erzeugen.

Ich habe auch diesen WEB_INF/webservices.xml erstellt:

<webservices> 
    <webservice-description> 
     <webservice-description-name>...</webservice-description-name> 
     <wsdl-file>WEB-INF/wsdl/....wsdl</wsdl-file> 
     <port-component> 
      <port-component-name>...</port-component-name> 
      <service-endpoint-interface>com.example.myService</service-endpoint-interface> 
      <service-impl-bean> 
       <servlet-link>...</servlet-link> 
      </service-impl-bean> 
     </port-component> 
    </webservice-description> 
</webservices> 

Die gleiche Konfiguration arbeitet unter tomcat und WebLogic aber unter war 8.5.5 (mit Mutter letzter Politik) keine Dienste ausgesetzt sind. WebSphere Konsole zeigt ‚keinen Fehler‘:

[21/03/16 12.08.37:379 CET] 00000096 http   I WSSERVLET12: JAX-WS context listener initializing 
[21/03/16 12.08.39:371 CET] 00000096 monitoring I Metro monitoring rootname successfully set to: null 
[21/03/16 12.08.39:602 CET] 00000096 http   I WSSERVLET14: JAX-WS servlet initializing 

Antwort

0

Nach WS JAX-WS-Motor deaktiviert ist, wurde, wird die Web-Service-Artefakte in der entfalteten Anwendung nicht erkennen und zu bauen. Dann werden die JAX-WS-Dienste nicht in der WAS-Verwaltungskonsole aufgeführt. Dies ist das erwartete Verhalten. Außer die Dienste sind nicht aufgeführt, gibt es einen Fehler beobachtet? Und ich fand den Web-Service-DD-Dateiname nicht korrekt, es sollte webservices.xml sein.

Grüße Yang

+0

Danke. Kein Fehler, nur Dienste nicht aufgelistet. Dies ist nicht der erwartete Nachteil, da sun-jaxws und webservices eine korrekte wsdl mit mehreren Diensten konfigurieren. – Alvins