Eclipse mit Tomcat und Jersey

saw

Mitglied
Hi, ich versuche mit ein Eclipse mit Tomcat so zu konfigurieren, dass ich einen REST Service programmieren kann. Leider scheitere ich schon am Hello World :D Tomcat gibt mir einfach immer einen 404 Error.

Ich poste euch mal ein paar Infos, sind ja nur 2 relevante Files:

Code:
mathias@id83:~/.workspace/Jersey-HelloWorld$ find .
.
./.project
./src
./src/jersey
./src/jersey/helloworld
./src/jersey/helloworld/Hello.java
./.settings
./.settings/org.eclipse.wst.common.component
./.settings/.jsdtscope
./.settings/org.eclipse.wst.jsdt.ui.superType.name
./.settings/org.eclipse.wst.jsdt.ui.superType.container
./.settings/org.eclipse.wst.common.project.facet.core.xml
./.settings/org.eclipse.jdt.core.prefs
./.classpath
./build
./build/classes
./build/classes/jersey
./build/classes/jersey/helloworld
./build/classes/jersey/helloworld/Hello.class
./WebContent
./WebContent/WEB-INF
./WebContent/WEB-INF/lib
./WebContent/WEB-INF/lib/asm-all-repackaged-2.2.0.jar
./WebContent/WEB-INF/lib/osgi-resource-locator-1.0.1.jar
./WebContent/WEB-INF/lib/javax.inject-2.2.0.jar
./WebContent/WEB-INF/lib/javax.annotation-api-1.2.jar
./WebContent/WEB-INF/lib/jersey-container-servlet.jar
./WebContent/WEB-INF/lib/aopalliance-repackaged-2.2.0.jar
./WebContent/WEB-INF/lib/javax.ws.rs-api-2.0.jar
./WebContent/WEB-INF/lib/jersey-client.jar
./WebContent/WEB-INF/lib/hk2-utils-2.2.0.jar
./WebContent/WEB-INF/lib/jersey-common.jar
./WebContent/WEB-INF/lib/hk2-api-2.2.0.jar
./WebContent/WEB-INF/lib/jersey-guava-2.7.jar
./WebContent/WEB-INF/lib/jersey-container-servlet-core.jar
./WebContent/WEB-INF/lib/hk2-locator-2.2.0.jar
./WebContent/WEB-INF/lib/jaxb-api-2.2.7.jar
./WebContent/WEB-INF/lib/validation-api-1.1.0.Final.jar
./WebContent/WEB-INF/lib/persistence-api-1.0.jar
./WebContent/WEB-INF/lib/jersey-server.jar
./WebContent/WEB-INF/lib/org.osgi.core-4.2.0.jar
./WebContent/WEB-INF/lib/javassist-3.18.1-GA.jar
./WebContent/WEB-INF/lib/javax.servlet-api-3.0.1.jar
./WebContent/WEB-INF/web.xml
./WebContent/META-INF
./WebContent/META-INF/MANIFEST.MF
mathias@id83:~/.workspace/Jersey-HelloWorld$

Java:
package jersey.helloworld;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

// Plain old Java Object it does not extend as class or implements 
// an interface

// The class registers its methods for the HTTP GET request using the @GET annotation. 
// Using the @Produces annotation, it defines that it can deliver several MIME types,
// text, XML and HTML. 

// The browser requests per default the HTML MIME type.

//Sets the path to base URL + /hello
@Path("/hello")
public class Hello {

  // This method is called if TEXT_PLAIN is request
  @GET
  @Produces(MediaType.TEXT_PLAIN)
  public String sayPlainTextHello() {
    return "Hello Jersey";
  }

  // This method is called if XML is request
  @GET
  @Produces(MediaType.TEXT_XML)
  public String sayXMLHello() {
    return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
  }

  // This method is called if HTML is request
  @GET
  @Produces(MediaType.TEXT_HTML)
  public String sayHtmlHello() {
    return "<html> " + "<title>" + "Hello Jersey" + "</title>"
        + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> ";
  }

}

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>HelloWorld</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>de.vogella.jersey.first</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
[/XML]

Ich dachte jetzt, dass ich durch http://localhost:8080/HelloWorld/rest/hello zumindest etwas anderes als 404 Error bekommen sollte.

Hat jemand einen Tip fuer mich?
 

turtle

Top Contributor
ich habe in meinem Jersey-Projekt folgende Libs unter WebContent/WEB-INF/lib
  • asm-3.1.jar
  • jackson-core-asl-1.9.2.jar
  • jackson-jaxrs-1.9.2.jar
  • jackson-mapper-asl-1.9.2.jar
  • jackson-xc-1.9.2.jar
  • jersey-client-1.17.1.jar
  • jersey-core-1.17.1.jar
  • jersey-json-1.17.1.jar
  • jersey-server-1.17.1.jar
  • jersey-servlet-1.17.1.jar
  • jettison-1.1.jar
  • jsr311-api-1.1.1.jar
und das ist meine web.xml
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>de.vogella.jersey.first</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>de.vogella.jersey.first</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app> [/XML]
 

turtle

Top Contributor
Yep, das Tutorial von vogella.

Ich meine mich zu erinnern, das die web.xml nicht richtig war.
Insbesondere
[XML]<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>[/XML]
 

saw

Mitglied
Deswegen steht da bei mir

Code:
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

;) Aber auch das mag falsch sein. Wer weiss das schon ...
 

turtle

Top Contributor
Da bin ich mir sicher, das deine Version falsch ist:noe:
Ich nutze Eclipse und da kannst du ja mal Shift-Ctrl-T (Open Type) machen und ServletContainer eintippen. Dann sollte Eclipse die Klasse com.sun.jersey.spi.container.servlet.ServletContainer (enthalten in jersey-servlet-1.17.1.jar) finden.

Ich kann noch etwas genauer beschreiben, wie ich es eingerichtet habe...

Wie gesagt nutze ich Eclipse (Kepler) mit dem sysdeo-Tomcat-Plugin.

Im Tomcat gibt es dabei eine context-Definitionsdatei unter tomcat/conf/Catalina/localhost und die heisst bei mir rest.xml
[XML]<Context path="rest" reloadable="true" docBase="D:\java\Java-Forum\Jersey\WebContent" workDir="D:\java\Java-Forum\Jersey\work" >
<Logger className="org.apache.catalina.logger.SystemOutLogger" verbosity="4" timestamp="true"/>
<Loader className="org.apache.catalina.loader.DevLoader" reloadable="true" debug="1" useSystemClassLoaderAsParent="false" />
</Context>
[/XML]
Du erkennst, das der Path ebenfalls rest heisst, also muss der Aufruf im Browser lauten
HTML:
http://localhost:8080/rest/hello

Die web.xml sieht leicht anders aus, als gestern von mir gepostet.:oops:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>de.vogella.jersey.first</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app> [/XML]

Ich benutze gerne den Dev HTTP Client im Chrome-Browser, weil ich damit leicht requests zusammen basteln und abschicken kann.
 
Zuletzt bearbeitet:

saw

Mitglied
Hi turtle,

der einziger ServletContainer den mein Eclipse kennt ist org.glassfish.jersey.servlet.ServletContainer. Ich meine das ist eine der Neuerungen in Jersey 2.x.

Ich habs endlich geschafft mit

[XML]<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>HelloREST</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name> </param-name>
<param-value>net.vxpertise.hellorest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>[/XML]

Der ServletContainer ist org.glassfish.jersey.servlet.ServletContainer und für das Package Scanning muss jersey.config.server.provider.packages gesetzt werden.

Danke für den Beistand :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Fehlersuche in Eclipse/Tomcat -> Error-log?? Allgemeines EE 2
S Anfängerfrage Eclipse/Tomcat Allgemeines EE 4
A Tomcat in Eclipse Allgemeines EE 11
P Eclipse Tomcat Plugin funktioniert nicht mit externem TC-Server? Allgemeines EE 4
S Tomcat + Eclipse Allgemeines EE 6
S JSP / Tomcat / Eclipse / Unable to compile class for JSP Allgemeines EE 4
O eclipse - tomcat: Problem bei einfachem Webservice Allgemeines EE 16
G Tomcat unter Eclipse starten Allgemeines EE 9
S Hibernate, Tomcat und Eclipse treiben mich zum Wahnsinn. Allgemeines EE 2
T Sysdeo Eclipse Tomcat Plug-in Allgemeines EE 4
G Tomcat / Eclipse oder Web.xml Problem Allgemeines EE 11
R Eclipse, SVN und Tomcat - wie kombinieren Allgemeines EE 5
F Sysdeo Eclipse Tomcat Plugin Allgemeines EE 1
S webservice mit tomcat und axis ohne eclipse laufen lassen? Allgemeines EE 2
M Eclipse WTP/AXIS mit TomCat 5.5.02 ./. TomCat 5.5.17 Allgemeines EE 1
padde479 Eclipse und Tomcat Allgemeines EE 3
Dimax Servlet läuft in Eclipse, aber nicht im Browser Allgemeines EE 74
M Zeitgesteuertes Ereignis in einer dynamic web module Anwendung (eclipse) Allgemeines EE 3
R Java EE 6, eclipse, maven, jsf, hibernate, mysql Allgemeines EE 8
P JavaEE 7 Maven Eclipse Allgemeines EE 0
M Glassfish Deployment-Problem unter Eclipse Allgemeines EE 0
B EJB3.0 Projekt - Eclipse Allgemeines EE 1
F Eclipse/Java EE Debug-Problem Allgemeines EE 1
E Eclipse JEE6 Plugins Allgemeines EE 2
S Eclipse: Teilmodule beim Testen werden nicht gestartet Allgemeines EE 2
aze Eclipse Java EE Web Project:Wo liegen die Servlets ? Allgemeines EE 4
J JBoss, Eclipse, Webseite wird nicht angezeigt? Allgemeines EE 4
W Anleitung/Tutorial Eclipse/JBoss 6.0 mit Seam 3.0 bzw. jBPM 5.0 Allgemeines EE 3
E Servlet Wie kann ich ohne Hilfe von Eclipse in JBoss mein servlet aufrufen Allgemeines EE 2
S Rich Client Application mit Eclipse/WebLogic/EclipseLink/EJB3 Allgemeines EE 2
E Eclipse Helios JNDI Lookup failed Allgemeines EE 5
L Eclipse (Helios); Glassfish 3; EJB und VirtualBox Allgemeines EE 1
S Eclipse: JPA Project in Dynamic Webproject nutzen Allgemeines EE 4
S Eclipse JPA Project Allgemeines EE 8
S Dynamic Web Project mit Eclipse - Vorgehensweise? Allgemeines EE 2
E Anfänger mit Eclipse und JEE Allgemeines EE 6
P Allg. Frage Eclipse EE & Xml Allgemeines EE 2
K Pfad bei Webprojekt in Eclipse herausfinden Allgemeines EE 11
R Wie Spring in Eclipse Galileo installieren? Allgemeines EE 5
A GWT Debugmode in Eclipse Allgemeines EE 6
J JSF 1.2-Anwendung mit Eclipse Galileo Allgemeines EE 1
I Klassen werden nicht für Import erkannt eclipse EE Allgemeines EE 2
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
R Sourcen einbinden von J2EE bzw auch für Servlets in Eclipse Allgemeines EE 8
I Web-Projekt zum Laufen bringen unter Eclipse Allgemeines EE 3
D Kein EntityManager in Eclipse (!) Allgemeines EE 2
G Simples JSF-Projekt in Eclipse - Problem Allgemeines EE 9
I Eclipse Projekt SVN, Informationen löschen Allgemeines EE 3
M Eclipse GUI für EJB-QL bzw HQL? Allgemeines EE 4
M embedded jboss unter eclipse 3.3 Allgemeines EE 2
C Servlets in Eclipse ausführen Allgemeines EE 5
M Kostenloses JSP Plugin für Eclipse Allgemeines EE 6
B Client starten ohne Eclipse Allgemeines EE 4
R Eclipse + JBoss + JSF Allgemeines EE 14
V MYSQL JDBC;java.lang.ClassNotFoundException; Problem Eclipse Allgemeines EE 3
S JSF mit Eclipse J2EE Allgemeines EE 6
W Arbeitsumgebung für JSP-Development einrichten (Eclipse, .) Allgemeines EE 3
A Eclipse Start-Problem Allgemeines EE 5
D EJB3.0 Projekt (Eclipse) Allgemeines EE 3
R JBoss 4.2.0 - Eclipse RC 3.3 und WTP Allgemeines EE 3
D JBOSS unter Eclipse Allgemeines EE 2
K .jar Datei zu eclipse importieren Allgemeines EE 3
C JSF Autocomplete in Eclipse Allgemeines EE 1
M JBOSS AS von Eclipse aus steuern Allgemeines EE 9
D Eclipse findet javax.servlet.jsp.tagext Allgemeines EE 4
K JRE Eclipse <--> WebSphere Allgemeines EE 3
M J2EE Entwicklung mit Eclipse Allgemeines EE 5
Acha Problem Browsercache im Eclipse bei Arbeit mit WTP Allgemeines EE 4
L mit gleichem eclipse Projekt auf anderem Rechner benutzen Allgemeines EE 3
S .war Datei erzeugen unter Eclipse Allgemeines EE 2
F Eclipse Wtp und erste JSP Seite Allgemeines EE 5
E J2EE unter Eclipse Allgemeines EE 6
G j2ee eclipse bekanntmachen Allgemeines EE 4
R Java2WSDL aus Eclipse heraus funktioniert nicht Allgemeines EE 2
C JBoss Server unter Eclipse 3.1 Allgemeines EE 2
R Servlets in ECLIPSE programmieren Allgemeines EE 3
S Eclipse und JSP Allgemeines EE 9
M Debugging mit Eclipse / Web-Application Allgemeines EE 2
daLenz jboss 3.2.5 konfiguration unter eclipse Allgemeines EE 2
S Hibernate 2.x mit Eclipse 2.1 Allgemeines EE 16
A Eclipse: EJB-1.1-Dateien importieren und bearbeiten Allgemeines EE 2
M EJB-client: jar-Archiv als Export aus Eclipse läuft nicht Allgemeines EE 5
T Servlets in eclipse schreiben !! Allgemeines EE 5
F Probleme mit Eclipse/JBoss Allgemeines EE 6
T Eclipse: Problem bei der Installation Allgemeines EE 3
S Tomcat Application Path bestimmen Allgemeines EE 0
TheWhiteShadow JSF plugins für tomcat webapp Allgemeines EE 0
X Tomcat checkParachute Allgemeines EE 3
C Servlet Tomcat/Jersey findet REST-Service nicht Allgemeines EE 3
J Global JNDI Tomcat Allgemeines EE 0
N WebService WAR-File auf Tomcat-Server Allgemeines EE 1
C WebSocket in Tomcat wirft 404 Allgemeines EE 0
S Tomcat und 404 -> von jetzt auf gleich Allgemeines EE 4
L JNDI auf Tomcat mit EE Allgemeines EE 4
E Servlet Tomcat Method Signature Resolution Allgemeines EE 7
J Logging und Monitoring unter Tomcat Allgemeines EE 2
aze Tomcat:Error Pages werden nicht angezeigt Allgemeines EE 4
D JSF JSF 2.0 + ICEFaces + Tomcat 7 Allgemeines EE 3
R Sessionmanagement und Tomcat Allgemeines EE 6
W Tomcat Support mit SLA? Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben