2010-07-08 3 views
5

Als Web-Service-Anfänger habe ich seit 2 Wochen versucht, einen Hallo Welt-Webservice zu bekommen, der mit Maven, Eclipse und Tomcat arbeitet.Wie stelle ich einen Jax-Ws-Dienst für Eclipse oder Tomcat bereit?

Ich habe aufgegeben zu versuchen, einige der Code/wsdl Generatoren zu arbeiten, und ich folgte diesem Tutorial http://myarch.com/create-jax-ws-service-in-5-minutes Hand Code ein Beispiel, das ist brillant.

Dies führt zu 4 Klassendateien und einer WSDL-Datei.

Also meine dumme Frage ist, wie man den Dienst in Eclipse und/oder Tomcat "läuft"?

Ich habe versucht, sie nur als Webanwendung zu implementieren, aber keine Freude - es gibt nichts in der web.xml zu sagen, die Servlet-Engine, dass der Web-Service existiert, so denke ich, es könnte nie funktionieren.

Muss ich einen speziellen Web-Service-Container (z. B. axis2, metro oder CXF) innerhalb von tomcat haben und diesen bereitstellen? Oder kann es nur mit einigen Jax-Ws-Gläsern + Mystery-Konfiguration laufen?

Ich möchte nicht in Tomcat Metro installieren (die Ameise verwendet, und ist für Glassfish desiged), oder Axis2 (die Ameise verwendet, und die meisten Menschen scheinen nicht zu empfehlen).

Ich sah CXF, kann aber nirgendwo auf ihrer Website finden, wie man es auf Tomcat (oder Eclipse) ohne Feder installieren/konfigurieren. Ich habe die CFX-Jars in Maven-Abhängigkeiten platziert und das Eclipse-Plugin installiert, aber das bringt Sie nicht näher dazu, einen Webservice ohne den Mystery Configuration Leim zu betreiben. CXF scheint mit dem Frühling verbunden zu sein, was für uns ein großes Minus ist, da wir keine Feder benutzen (oder irgendeine ihrer Eigenschaften brauchen).

Ich bemerkte, helios wtp hat eine Art von Web-Service-Projekt namens JSR-109. Ist dieser Java-RPC nur oder unterstützt er das gesamte SOAP-Websystem und ist es wert, versucht zu werden?

Alle Ratschläge sind sehr willkommen. Ich muss 1000 Seiten gegoogelt haben auf der Suche nach dem Web-Service Heiligen Gral - d. H. Wie man einen zu Tomcat von Ende zu Ende erstellt und einsetzt. Soll es so schwer sein?

Antwort

4

dieses Fragment auf Ihre web.xml hinzufügen Datei

<servlet> 
    <servlet-name>wshello</servlet-name> 
    <servlet-class> 
     com.sun.xml.ws.transport.http.servlet.WSServlet 
    </servlet-class>    
</servlet>  
<servlet-mapping> 
    <servlet-name>wshello</servlet-name> 
     <url-pattern>/webservice</url-pattern> 
</servlet-mapping> 

Und dann erstellen Sie einfach eine Datei, deren Name ist Sonnen 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="WebServiceTest" 
      implementation="your.webservice.impl.ClassName" 
      url-pattern="/webservice"/> 
</endpoints> 

Dann eine WAR-Datei wie gewohnt erstellen. Sie benötigen CXF oder Axis nicht, um einen Basis-WebService in Tomcat bereitzustellen. Übrigens sollte jax-ws Bibliotheks-Jars (jaxws-api.jar, jaxb-impl.jar etc ..) in Ihrem Klassenpfad sein. Sie können jax-ws-Bibliotheken von here

herunterladen
1

Ich weiß, es ist ein Klischee, aber es klingt wie Sie das Rad neu erfinden wollen. Es gibt einen Grund, warum es Dinge wie Axis2 und CXF gibt. Sie machen viel harte Arbeit für Sie. Ich habe beide benutzt und hatte viel Erfolg mit ihnen. Denken Sie daran, ich spreche von begrenzten persönlichen Erfahrungen.

Ich habe festgestellt, dass CXF und Spring es sehr einfach machen, einen Vertrag-ersten JAX-WS-Dienst einzurichten und sogar WS-Sicherheit, Nachrichtenprotokollierung, Schemavalidierung und HTTP-Konfigurationseinstellungen hinzuzufügen. Meistens mit der Spring XML-Konfigurationsdatei. Ich habe auch gelernt, dass Spring mit Quartz verwendet werden kann, um Jobs zu planen und Ihren Datenzugriff zu verwalten. Es ist ein ziemlich handliches Werkzeug.

Axis2, während ich es eine Weile nicht benutzt habe, erinnere ich mich daran, dass es ziemlich einfach ist, einige POJOs mit minimalem Aufwand in einen Dienst zu verwandeln.

Meine einzige Erfahrung mit Metro ist ein kleiner Testdienst, den ich mit NetBeans erstellt und auf dem eingebauten Glassfish Server ausgeführt habe. Es war sehr einfach, aber die IDE hat eine Menge Arbeit für dich erledigt, was wahrscheinlich keine gute Art zu lernen ist. Es fühlte sich an, als ob es nur ein paar Mausklicks brauchte und plötzlich gab es einen Service.

Auch this question ist irgendwie verwandt.

Viel Glück!

Verwandte Themen