Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hat jemand von euch einen WebService (JAX-WS) unter Tomcat 7 laufen. Ich versuche meine zum Laufen zu bekommen, bekomme aber immer einen HTTP 404.
Meine sun-jaxws.xml und web.xml sollten korrekt sein. In den Tomcat-Logs finde ich leider auch keine Hinweise. Hat mir jemand von euch ein Beispiel oder ein Link auf ein Howto?
Habe nur Tomcat 5.x und 6.x probiert, aber das klingt mehr nach einem Konfigurationsproblem als einem Problem mit Tomcat. Hier gibt's Beispielapplikationen: JAX-WS RI 2.2.1 -- Samples
gelesen habe (Instanlation, setzen der Umgebungsvariablen und 'ant-install').
Leider sind gewisse Seiten, auf die hier verwiesen wird, nicht mehr verfügbar. Welche "Readmes" meinst du? Bzw. was hast du gemacht, damit es am Schluss doch geht? Kannst du mir einen Tipp oder Link geben?
Die URLs aus Beiträgen 3 & 4 werden mit "Seitenladefehler" quittiert!
Was nicht funktioniert:
- habe JDK 1.6 (1.6.0_24) und Tomcat 7
- habe jax-ws installiert
- CATALINA_HOME und JAXWS_HOME gesetzt (wie unter JAX-WS RI 2.2.1 -- Release Notes beschrieben)
Der Versuch ant install-api auszuführen, scheiterte (Zugriff verwiegert, ...): die zwei jar-Dateien habe ich anschliessend von Hand in <JAVA_HOME>\jre\lib\endorsed kopiert. Mit ant install wurde im <CATALINA_HOME>\shared\lib angelegt und die entsprechenden jar-Dateien kopiert.
Bevor ich mein Service installiere, kontrolliere ich, ob Tomcat noch startet: NEGATIV! Erst wenn ich das Verzeichnis <CATALINA_HOME>\shared\lib\*.jar entferne, kann ich Tomcat wieder starten.
Also, die erste Frage: Braucht es die jar-Dateien im <CATALINA_HOME>\shared\lib bei Tomcat 7 überhaupt?
Die zweite Frage wäre:
Wenn ich mein Service habe (von Hand verpackt), muss ich noch irgendewelche zusätzlichen Konfigurations-Dateien auch mitgeben? Oder, reicht es, wenn ich im WEB-INF Verzeichnis das Verzeichnis classes anlege und die class-Dateien dort ablege?
Tomcat 7 wird gestartet, alles O.K. Vorhandene Web-Services (mit CXF bzw. Axis2) können angespreochen werden. Die Datei adder.war wird in webapps abgelegt ...
Beim Dekomprimieren der war-Datei kommt folgende Meldung:
[XML]
INFO: Undeploying context [/adder]
27.04.2011 23:28:43 org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive adder.war
27.04.2011 23:28:43 org.apache.catalina.core.StandardContext startInternal
SCHWERWIEGEND: Error listenerStart
27.04.2011 23:28:43 org.apache.catalina.core.StandardContext startInternal
SCHWERWIEGEND: Context [/adder] startup failed due to previous errors
[/XML]
Woran liegt es? Sind meine XML-Dateien nicht korrekt?
Der Versuch ant install-api auszuführen, scheiterte (Zugriff verwiegert, ...): die zwei jar-Dateien habe ich anschliessend von Hand in <JAVA_HOME>\jre\lib\endorsed kopiert.
Bevor ich mein Service installiere, kontrolliere ich, ob Tomcat noch startet: NEGATIV! Erst wenn ich das Verzeichnis <CATALINA_HOME>\shared\lib\*.jar entferne, kann ich Tomcat wieder starten.
Theoretisch kannst du die JAX-WS Dateien einfach in deine Web App packen. Leider ist in JDK 6 JAX-WS 2.1 eingebaut und das kommt sich mit JAX-WS 2.2 in die Haare. Kann gut sein, dass diese Tomcat shared/lib mal wieder woanders hingeschoben wurde, jedenfalls hat sich das Verzeichnis bisher noch mit jeder größeren Versionsänderung von Tomcat geändert.
Wenn ich mein Service habe (von Hand verpackt), muss ich noch irgendewelche zusätzlichen Konfigurations-Dateien auch mitgeben? Oder, reicht es, wenn ich im WEB-INF Verzeichnis das Verzeichnis classes anlege und die class-Dateien dort ablege?
Ich bin mir gerade nicht sicher, ob Tomcat die JAX-WS Annotationen genügen, oder ob man zusätzlich noch ein JAX-WS Servlet konfigurieren muss. Steht im JAX-WS User Guide.
Habe noch einmal mit ant install-api versucht um Logdeinträge zu bekommen. Die Logdatei enthält knapp 3000 Zeilen. Ich zeige nur einen kurzen Auszug: vielleicht sagt das jemandem etwas.
Java:
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
28.04.2011 00:03:21 org.apache.catalina.loader.WebappClassLoader validateJarFile
28.04.2011 00:03:36 org.apache.catalina.startup.ContextConfig checkHandlesTypes
WARNUNG: Unable to load class [com.sun.codemodel.JArrayClass$1] to check against the @HandlesTypes annotation of one or more ServletContentInitializers.
java.lang.ClassNotFoundException: com.sun.codemodel.JArrayClass$1
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1956)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1919)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1806)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1765)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1751)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1255)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:882)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5081)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.startup.Catalina.start(Catalina.java:620)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)
28.04.2011 00:03:36 org.apache.catalina.startup.ContextConfig checkHandlesTypes
WARNUNG: Unable to load class [com.sun.codemodel.JCodeModel$1] to check against the @HandlesTypes annotation of one or more ServletContentInitializers.
java.lang.ClassNotFoundException: com.sun.codemodel.JCodeModel$1
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1956)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1919)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1806)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1765)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1751)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1255)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:882)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5081)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.startup.Catalina.start(Catalina.java:620)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)
28.04.2011 00:03:36 org.apache.catalina.startup.ContextConfig checkHandlesTypes
WARNUNG: Unable to load class [com.sun.codemodel.JExpr$3] to check against the @HandlesTypes annotation of one or more ServletContentInitializers.
java.lang.ClassNotFoundException: com.sun.codemodel.JExpr$3
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1956)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1919)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1806)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1765)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1751)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1255)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:882)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5081)
...
java.lang.ClassNotFoundException: com.sun.tools.xjc.grammar.xducer.NilTransducer
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1956)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1919)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1806)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1765)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1751)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1255)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:882)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
...
java.lang.ClassNotFoundException: com.sun.tools.xjc.grammar.xducer.QNameTransducer
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1956)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1919)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1806)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1765)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1751)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1255)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:882)
...
Wenn ich mir so die Doku anschaue, scheint die JAX-WS Installation nur mit Tomcat 5 getestet zu sein. Mit Tomcat 6 haben sich die Verzeichnisse geändert und vermutlich benutzt Tomcat 7 die gleichen Verzeichnisse wie Tomcat 6. Probier doch mal, Metro zu installieren, das ist JAX-WS + diverse WS-* Spezifikationen und die Installation ist mit Tomcat 6 getestet: Metro - Java.net
Aber schmeiß zuerst die alte JAX-WS Installation raus.