# Einfaches REST Webservice Beispiel



## mirus (29. Nov 2014)

Hallo Community,

ich möchte eine kleine Anwendung erstellen, die einen REST Webservice anbietet. 
Bisher habe ich folgendes gemacht:

1. Erstelllung eines Projektes =>  "Dynamic Web Project"
2. Hinzufügen der JAX-RS Api => .jar Dateien in den "Buid Path" einfügen
3. Eine Klasse erstellt, die als Resource dient:

```
package App;

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

@Path("helloworld")
public class TestRESTWebservice {

	  @GET
	  @Produces( MediaType.TEXT_PLAIN )
	  public String message()
	  {
	    return "Yea! ";
	  }
}
```

Als Server nutze ich einen Tomcat v6.0. Wenn ich nun die Adresse (http://localhost:8080/Projekt/helloworld) im Browser aufrufe erhalte ich eine "HTTP Status 404 " Meldung. Ich kann den Webservice also nicht aufrufen. Habe ich etwas Vergessen? Wäre für Tipps dankbar.

Gruß,
mirus


----------



## stg (29. Nov 2014)

Jersey Servlet in der web.xml bekannt gemacht?


----------



## mirus (29. Nov 2014)

Die Klasse "TestRESTWebservice" ist kein Servlet, bzw. ich habe einfach eine Klasse erstellt. Muss die "Webservice-Klasse" ein Servlet sein?


----------



## stg (29. Nov 2014)

Nein, du musst das *Jersey* Servlet in der web.xml bekannt geben. Sonst kannst du es nunmal nicht benutzen...

(genauso, wie du das Faces Servlet bekannt geben musst, wenn du eine JSF Appilcation aufsetzt, falls du das schon mal gemacht hast... )

Sollte für Jersey ungefähr so aussehen:

```
<servlet>
		<servlet-name>Jersey Web Application</servlet-name>
		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Jersey Web Application</servlet-name>
		<url-pattern>/rest/*</url-pattern>
	</servlet-mapping>
```

Dann wäre in deinem Fall die richtige Adresse:
http://localhost:8080/Projekt/*rest/*helloworld


----------



## mirus (30. Nov 2014)

Ich habe das schon mit JSP gemacht. Meine web.xml habe ich um deinen "Code" ergänzt.
Leider funktioniert es immer noch nicht. Die Klasse "com.sun.jersey.spi.container.servlet.ServletContainer" befindet sich in der "jersey-bundle-1.8.jar"


web.xml:


Projektstruktur:


----------



## mirus (30. Nov 2014)

Nochmal danke für die Hilfe. Es funktioniert jetzt. Ich habe die Jersey .jar's zum WEB-INF/lib hinzugefügt.


----------

