Предоставление метода EJB в качестве службы REST - PullRequest
6 голосов
/ 07 декабря 2010

В J2EE 6 вы можете представить свой 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, однако, когда я пытаюсь упаковать свой проект в отдельные модули web и ejb внутри EAR, я получаю ошибку 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>

1 Ответ

5 голосов
/ 14 декабря 2010

JAX-RS аннотированные корпоративные bean-компоненты в отдельном файле или в отдельном файле ejb-jar, включенном в EAR, не поддерживаются.

См. Ниже

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

...