将EJB方法暴露为REST服务 [英] Exposing EJB method as REST service

查看:159
本文介绍了将EJB方法暴露为REST服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在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>测试会话bean< / val>;
}
}

当我在.war中打包EJB时,这可以工作但是,当我尝试将我的项目打包到EAR中的单独的Web和ejb模块中时,我发现一个HTML 404未找到错误。



有人可以解释吗? p>

我正在使用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>


解决方案

JAX-RS注释企业bean在独立或者不包含在EAR中的单独ejb-jar文件。



见下文



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


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>

解决方案

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

这篇关于将EJB方法暴露为REST服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆