2010-12-07 6 views
6

In J2EE 6 Sie Ihre EJB Session Bean als REST Web-Service wie untenMachen EJB-Methode als REST-Service

@Stateless 
@Path("/test") 
public class TestSessionBean { 
    @GET 
    @Produces("application/xml") 
    public String getTest() { 
    return "<?xml version='1.0' encoding='UTF-8'?><val>test session bean</val>"; 
    } 
} 

Dies funktioniert aussetzen kann, wenn ich die EJB in der .war verpackt, aber wenn ich versuche, um mein Projekt in separate Web- und EJB-Module innerhalb einer EAR zu packen, bekomme ich einen HTML 404 nicht gefunden Fehler.

Kann mir bitte jemand erklären?

Ich bin mit Glassfish v3

Hier ist mein web.xml

<servlet> 
    <servlet-name>TaskRestService</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>TaskRestService</servlet-name> 
<url-pattern>/services/*</url-pattern> 
</servlet-mapping> 
+0

ich das gleiche Problem mit Glassfish v4.1.1 haben. Alles funktioniert gut verpackt in einem WAR, aber ich erhalte eine 404, wenn in einem EAR gepackt – Pedro

Antwort

5

JAX-RS kommentierte Enterprise-Beans in einem eigenständigen oder in einer separaten ejb-jar-Datei, die in enthalten ist Eine EAR wird nicht unterstützt.

Siehe unten

http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.iseries.doc%2Finfo%2Fiseriesnd%2Fae%2Ftwbs_jaxrs_ejb_localinterface.html

+0

IBM geändert, dass für Websphere 8.5.5 (Ihr Link ist für Version 8.0.0) es jetzt "JAX-RS annotierte Enterprise-Beans in einem ejb- Die JAR-Datei, die in einer EAR enthalten ist, wird ** jetzt ** unterstützt. Siehe Bereitstellen von EJB in einer EAR-Datei. " https://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.iseries.doc/ae/twbs_jaxrs_ejb_localinterface.html – Pedro

Verwandte Themen