Hallo...ich habe einen Restful Service geschrieben und kann ihn irgendwie nicht mit dem Link "http://localhost:8888/CustomerService/rest/customers/1" aufrufen. Nach dem Starten von Jetty bekomme ich die folgende Erfogsmeldung:
Sieht also gut aus. Über die Methode "GWT.getModuleBaseURL()" erhalte ich den folgenden Link: http://127.0.0.1:8888/uds.web.admin.webAdminUds/. Also scheint der Port auch richtig zu sein.
Meine Serviceklasse sieht wie folgt aus:
Die WEB.xml hierzu sieht wie folgt aus:
Kann mir jemand sagen, warum ich einen 404 bekomme? Danke******
Gruß
Andy
Java:
INFO: Scanning for root resource and provider classes in the Web app resource paths:
/WEB-INF/lib
/WEB-INF/classes
08.08.2011 18:19:16 com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
class uds.web.admin.data.CustomerService
08.08.2011 18:19:16 com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Provider classes found:
class org.codehaus.jackson.jaxrs.JacksonJsonProvider
class org.codehaus.jackson.jaxrs.JsonParseExceptionMapper
class org.codehaus.jackson.jaxrs.JsonMappingExceptionMapper
class org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider
08.08.2011 18:19:16 com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.8 06/24/2011 12:17 PM'
Sieht also gut aus. Über die Methode "GWT.getModuleBaseURL()" erhalte ich den folgenden Link: http://127.0.0.1:8888/uds.web.admin.webAdminUds/. Also scheint der Port auch richtig zu sein.
Meine Serviceklasse sieht wie folgt aus:
Java:
package uds.web.admin.data;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import javax.persistence.Query;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Stateless
@LocalBean
@Path("/customers")
public class CustomerService {
@PersistenceContext(unitName="CustomerService",
type=PersistenceContextType.TRANSACTION)
EntityManager entityManager;
@POST
@Consumes(MediaType.APPLICATION_XML)
public void create(Customer customer) {
entityManager.persist(customer);
}
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("{id}")
public Customer read(@PathParam("id") long id) {
return entityManager.find(Customer.class, id);
}
@PUT
@Consumes(MediaType.APPLICATION_XML)
public void update(Customer customer) {
entityManager.merge(customer);
}
@DELETE
@Path("{id}")
public void delete(@PathParam("id") long id) {
Customer customer = read(id);
if(null != customer) {
entityManager.remove(customer);
}
}
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("findCustomersByCity/{city}")
public List <Customer> findCustomersByCity(@PathParam("city") String city) {
Query query = entityManager.createNamedQuery("findCustomersByCity");
query.setParameter("city", city);
return query.getResultList();
}
}
Die WEB.xml hierzu sieht wie folgt aus:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>
<persistence-context-ref>
<persistence-context-ref-name>persistence/em</persistence-context-ref-name>
<persistence-unit-name>CustomerService</persistence-unit-name>
</persistence-context-ref>
</web-app>
Kann mir jemand sagen, warum ich einen 404 bekomme? Danke******
Gruß
Andy