# Webservice: JAX-WS mit Tomcat5.x



## Kirro (12. Mai 2011)

Hallo Zusammen!

ich arbeite mich gerade in Webservices an. Habe zunächst paar Tutorials gemacht, die die Endpoint.publish - Methode benutzen. Dies fand ich ziemlich gut und es hat alles auf anhieb funktioniert. Jedoch wollte ich nun auf Tomcat deployen. Also habe ich nach Tutorials gesucht. Leider finde ich kein Tutorial das es so ziemlich auf den Punkt bringt. Ich habe ziemlich viele gemacht und sitze seit 3-4 tagen an dem Problem.

Ich versuche das gleiche Projekt, welches ich schon mit Endpoint etc. benutzt habe nun mit Tomcat zum laufen zu bekommen. Jedoch kann ich nie auf die wsdl zugreifen.

Mit Axis generiert tomcat mir zwar eine wsdl und ich kann darauf zugreifen, aber daraus kann ich keine Client-Daten machen (bzw. es geht aber nicht komplett)

Bei den Tutorials habe ich eigentlich immer vermisst welche Dateien ich brauche, welche mir Eclipse generieren kann, welche ich evtl. bearbeiten muss und auch die wsdl, ob ich die in eclipse generieren muss oder ob tomcat diese auch bei jaxws automatisch generiert.

Danke im Voraus!

Viele grüße

kirro

PS: Mit der Endpoint-Lösung habe ich alle benötigten Klassen bekommen. War ziemlich einfach daraus einen Client zu machen!


----------



## mavinatic (31. Mai 2011)

Hey, du sprichst mir aus der Seele...diese simplen localhost-"Services" kann ich auch bauen, aber wenn es um JBoss und Tomcat geht hören die Tutorials auf. Hast du inzwischen vielleicht ein paar Tutorials gefunden? Ich verzweifel auch solangsam?!

In jedem Tutorial wird immer von diesem WSIMPORT / WSGEN Tool gesprochen, gibt es auch eine Seite wo erklärt wird, wie man diese auch "manuell" erstellt? Wofür und wie sie da sind, ich finde nichts oder bin zu blöd zum suchen?!

Gruß 

George


----------



## Kirro (1. Jun 2011)

Hey,

ja ich hatte mal was gefunden, war jedoch auch nur bruchteilig... und habe es mir dann zusammen kopiert.

Also wenn du dein Webservice erstellt hast (z.B. Dynamic Webprojekt in Eclipse) musst du im WEB-INF ordner 2 Dateien erstellen

einmal sun-jaxws.xml: die wie folgt aussehen muss:
[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='WebServiceName'
        implementation='de.kirro.WebserviceImplementationKlasse'
        url-pattern='/'/>
</endpoints>[/XML]

und einmal die web.xml:
[XML]<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">

	<display-name>WebServiceName</display-name>
	<description>WebServiceName bla bla bla</description>

 	<listener>
    		<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
  	</listener>
  	<servlet>
    		<servlet-name>WebServiceName</servlet-name>
    		<display-name>WebServiceName</display-name>
    		<description>WebServiceName bla bla bla</description>
   		 <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
  	</servlet>
  	<servlet-mapping>
    		<servlet-name>WebServiceName</servlet-name>
    		<url-pattern>/*</url-pattern>
  	</servlet-mapping>

  	<session-config>
    		<session-timeout>60</session-timeout>
  	</session-config>

</web-app>[/XML]

in beiden Dateien sollten die gleichen Daten stehen besonders servlet-name und url-pattern ist wichtig
(du musst die Sachen natürlich anpassen, besonders die klasse in dem du dein Webservice implementiert hast)

wenn du das so einfügt (also mit der url-pattern) dann kannst du das aufrufen indem du folgende url folgst

http://localhost:8080/War-Datei-Name/
bzw. die wsdl datei
http://localhost:8080/War-Datei-Name/?wsdl

Vermutlich weißt du das schon aber ich schreibe das trotzdem nochmal hin:
Das Projekt musst du als war-datei exportieren diese war datei einfach in den tomcat-verzeichnis/webapps kopieren... die installation erfolgt automatisch

ich hoffe ich konnte dir helfen...


EDIT: Das ist die vorgehensweise mit JAX-WS ... AXIS habe ich nicht weiter ausprobiert!
Wenn du die URL nicht öffnen kannst müsstest du dir mal die log-dateien anschauen von tomcat


----------

