6

In J2EE 6 you can expose your EJB session bean as a REST web service as below

@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>";
  }
}

This works when I packaged the EJB in the .war, however, when I try to package my project into separate web and ejb modules inside an EAR I get an HTML 404 not found error.

Can someone please explain?

I'm using Glassfish v3

Here is my 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>
Beryllium
  • 12,808
  • 10
  • 56
  • 86
duvo
  • 1,634
  • 2
  • 18
  • 30
  • I have the same problem with Glassfish v4.1.1. Everything works ok packaged in a WAR but I receive a 404 when packaged in an EAR – Pedro May 17 '17 at 09:25

1 Answers1

5

JAX-RS annotated enterprise beans in a stand-alone or in a separate ejb-jar file that is included in an EAR is not supported.

See below

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

Andrés Oviedo
  • 1,388
  • 1
  • 13
  • 28
duvo
  • 1,634
  • 2
  • 18
  • 30
  • IBM changed that for Websphere 8.5.5 (your link is for version 8.0.0) it now states "JAX-RS annotated enterprise beans in an ejb-jar file that is included in an EAR is **now** supported. See Deploying EJB in an EAR file." https://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.iseries.doc/ae/twbs_jaxrs_ejb_localinterface.html – Pedro May 17 '17 at 06:00