将EJB方法公开为REST服务

duv*_*uvo 6 rest ejb

在J2EE 6中,您可以将EJB会话bean公开为REST Web服务,如下所示

@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>";
  }
}
Run Code Online (Sandbox Code Playgroud)

当我在.war中打包EJB时,这是有效的,但是,当我尝试将项目打包到EAR中的单独的web和ejb模块时,我得到一个HTML 404 not found错误.

有人可以解释一下吗?

我正在使用Glassfish v3

这是我的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>
Run Code Online (Sandbox Code Playgroud)