Abrufen der WSDL aus einer CXF webservice unter Tomcat

Antwort:
Ich weiß, das ist nicht die Art von Sache, die geht auch soweit Auflösungen gehen, aber ich fummelte, um mit der web.xml und servlet.xml Dateien, und aus irgendeinem Grund, es funktioniert jetzt, ich kann die Liste der Dienste und wsdl-Dateien einfach gut jetzt. Ich verglich meine neuen Dateien in die alten unten geschrieben, und der einzige Unterschied ist, dass die web.xml hat der name CXFServlet statt LoginService, und ich habe den cxfservlet.xml Endpunkt eine Adresse jetzt.

Ich habe ein Problem wo ich habe (Endlich) eine CXF-webservice-Deployment auf Tomcat. Oder, vielmehr bedeutet es starten, und es erzeugt keine Warnungen oder exceptions im tomcat-log, wenn ich das bereitstellen und strukturieren. Das problem ist, dass ich nicht das abrufen der WSDL des Dienstes in Frage. Ich bin Anfang zu denken, dass ich nicht verstehe, die web.xml und cxf.xml Dateien so gut wie ich dachte.

Wenn ich Schreibe http://localhost:8080/services/Login?wsdl ich würde erwarten, dass die WSDL-pop-up, aber ich erhalte nur einen 404. Was mache ich falsch? Als ich sagte, ich bin nicht immer irgendwelche Ausnahmen, also, was ist mein problem?

Bearbeiten:
Durch einige hilfreiche feedback (ich erinnerte mich, dass mark so hilfreich) ich erkannte, dass ich haben könnte, legen Sie den context path falsch in meinem web.xml. Ich Bereitstellung des service durch den manager-app von tomcat in einer Datei namens LoginService.Krieg.
Dies wirft die Frage auf: Kann ich noch tun? Wird tomcat wissen zu suchen, für die CXFServlet Klasse in der LoginService lib, oder wird es Aussehen in der WURZEL? Muss ich den server neu konfigurieren, mir zu erlauben, führen Sie aus http://localhost:8080/LoginService?

web.xml

<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<display-name>LoginService</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:metadata/Login/cxfservlet.xml</param-value>
</context-param>
<listener>
<listener-class>
  org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>LoginService</servlet-name>
<servlet-class>
    org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginService</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>

cxfservlet.xml

 <beans xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org
 /jaxws http://cxf.apache.org/schemas/jaxws.xsd">
 <jaxws:endpoint id="LoginService"
 implementor="orgserver.services.Login" wsdlLocation="WEB-INF/LoginService.wsdl"
 address="/">
 </jaxws:endpoint>
 </beans>
  • Schreiben Sie address="/". So versuchen localhost:8080/services/?wsdl
  • Gibt einen 404 sowie
  • Bin ich zumindest verstehen das richtig?: Ich bin unter Angabe der Klasse CXFServlet werden auf jeder angegebene url ähnlich /services/*. Dass CXFServlet Klasse ist, was braucht die Bohne, die ich geben in der cxfservlet.xml Datei als Endpunkt und verarbeitet die webservice-Aktionen? Es ist auch die CXFServlet, dass ist verantwortlich für die Rückkehr der WSDL?
  • Und würde alle Fehler, die während dieses Prozesses aufgezeichnet werden woanders als die Haupt-tomcat-log?
Schreibe einen Kommentar