2010-12-07 146 views
6

在J2EE 6,你可以如下使您的EJB會話bean作爲一個REST Web服務暴露EJB方法,REST服務

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

這工作時,我打包EJB中的.war,但是,當我嘗試將我的項目打包到EAR中的單獨的web和ejb模塊中,我得到了一個HTML 404未找到的錯誤。

有人能解釋一下嗎?

我使用Glassfish的第三版

這裏是我的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

我有Glassfish的V4.1.1同樣的問題。在WAR中打包的所有文件都可以正常打包,但在打包爲EAR時收到404 – Pedro 2017-05-17 09:25:32

回答

5
+0

IBM對Websphere 8.5.5進行了更改(鏈接適用於8.0.0版),現在聲明「JAX-RS註釋了企業bean的ejb-包含在EAR中的jar文件現在支持**。請參閱在EAR文件中部署EJB「。 https://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.iseries.doc/ae/twbs_jaxrs_ejb_localinterface.html – Pedro 2017-05-17 06:00:24