Hallo zusammen, da sich ja jetzt hier das Know-How versammelt hat, bin ich mal hinterher gewandert.
Folgendes Problem stellt sich mir zur Zeit:
Als Einstieg in REST-Services habe ich mich mal an diesem Tutorial probiert. War auch eigentlich recht einfach nachzuvollziehen. Allerdings läuft der Service nicht, und ich habe keine Ahnung, woran das liegen könnte. Hier mal kurz die zwei Dateien, die ich dazu erzeugt habe:
Java-Klasse:
<?xml version="1.0" encoding="UTF-8"?>
test
Jersey REST Service
org.glassfish.jersey.servlet.ServletContainer
com.sun.jersey.config.property.packages
de.horst
1
Jersey REST Service
/rest/*
[/XML]
Gegenüber dem Tutorial habe ich in der web.xml den Parameter servlet-class geändert, da Tomcat(7) die Klasse nicht finden konnte und eine NPE warf. Anscheinend wurde das von Oracle neu gepackt.
Ein Aufruf von http://localhost:8080/test/rest/hello gibt mir momentan nur den Fehler 404 aus. Was mache ich falsch?
Ja, mein Projekt heißt test. Die entsprechenden Infos habe ich im Server-Log leider nicht entdeckt, dafür folgendes:
validateJarFile(C:\Dokumente und Einstellungen\Hobel\javaprojects\JermannWeb\Tom7\wtpwebapps\Test\WEB-INF\lib\javax.servlet-api-3.1.0.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Ich werde das morgen mal mit einem anderen Server probieren, Glassfish würde sich ja anbieten.
Danke auch, ich leg mich jetzt auch erst mal schlafen, sowas nervt…
Ob groß, ob klein, Tomcat mag beides nicht. Die Ausgabe oben stammt aus einem dieser Versuche.
Das mit dem servlet-api.jar ist mir heute morgen auch schon aufgefallen, und ich habe darauf hin ein paar Versuche gestartet:
Die javax.servlet-api-3.1.0.jar aus dem WEB-INF/lib Verzeichnis gelöscht. Tomcat startet aber der Service funzt trotzdem nicht. Diese jar stammt aus dem Jersey-Paket.
Die servlet-api.jar von Tomcat mit der obigen jar ersetzt. Tomcat startet gar nicht mehr und gibt massig Fehlermeldungen aus.
Ich werde jetzt noch versuchen, diese servlet-jar von Jersey in den Tomcat-Ordner zu packen und einfach mal umbenennen, mal sehen, was passiert…
Edit:
Tomcat spuckt folgendes aus:
WARNING: Could not get url for /javax/servlet/resources/j2ee_1_4.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_5.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_6.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/xml.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/XMLSchema.dtd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/datatypes.dtd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_2.dtd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_3.dtd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_4.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_5.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_3_0.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-common_3_0.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-fragment_3_0.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_client_1_1.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_1_2.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_client_1_2.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_1_3.xsd
Aug 02, 2013 11:11:53 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_client_1_3.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_1_4.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_5.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_6.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/xml.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/XMLSchema.dtd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/datatypes.dtd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_2.dtd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_3.dtd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_4.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_5.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_3_0.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-common_3_0.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-fragment_3_0.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_client_1_1.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_1_2.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_client_1_2.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_1_3.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_client_1_3.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_1_4.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_5.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_6.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/xml.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/XMLSchema.dtd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/datatypes.dtd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_2.dtd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_3.dtd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_4.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_2_5.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-app_3_0.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-common_3_0.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/web-fragment_3_0.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_client_1_1.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_1_2.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_client_1_2.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_1_3.xsd
Aug 02, 2013 11:11:54 AM org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/javaee_web_services_client_1_3.xsd
Ja, Jersey 2 und Tomcat scheinen sich nicht zu mögen. Und Glassfish 4 hat wohl einen Bug bezüglich Google Guava, funzt also ebenfalls nicht, falls das einer versuchen möchte. Um zu dieser Erkenntnis zu gelangen, habe ich gestern den halben Tag verpulvert. Sowas frustriert, weil ich eine gewisse Problemstellung habe und mich lange durch Foren (das tote Java-Forum z.B.), Bücher und Tuts gequält habe und glaubte, mit REST den Lösungsansatz dafür gefunden zu haben. Ich finde diese ganzen EE-Geschichten sowieso ziemlich verwirrend und möchte bzw. kann einfach von meinem Intellekt her nicht alles auf einmal angehen, mir fehlen da also noch sehr viele Basics. Ich möchte auch nicht einfach wieder auf veraltete Versionen von Irgendwas zugreifen, da das angestrebte Projekt
[ul]
[li]sehr lange laufen soll
[/li][li]ich wahrscheinlich bis zur Fertigstellung noch ein halbes Jahr benötige.
[/li][/ul]
Mein weiteres Vorgehen wird also folgendermaßen aussehen:
Ich habe mir erst mal ein Buch über Maven bestellt, da es damit wohl möglich sein soll, sich Workarounds für die bestehenden Probleme zu basteln. Ich muss halt doch wohl noch kleinere Schritte machen beim Aneignen dieses Zeugs, siehe oben.
Und ich werde mir die von Sym verlinkten “Archetypen” (den Begriff höre ich zum ersten Mal :o) mal anschauen und sehen, was ich damit anfangen kann. Danke auch dafür.
So, nach weiterem gegoggel bin ich jetzt auf das Restlet-Framework gestoßen. Das läuft einwandfrei wie in den “First steps” beschrieben, sowohl auf Apache 7 als auch auf Glassfish. Ich werde mich da jetzt mal reinfuchsen. Vielen Dank auch an Euch alle. Werde das hier mal als erledigt markieren.