0

我正在使用最新的 JDK 6 和 Glassfish 3.1.2 在 Mac 上部署使用 NetBeans 3.1.2 创建的 Maven WebApp

它包含一个基本的 JAX-RS 服务。我尝试将 SLSB(使用 @EJB)和 CDI 托管 bean(@Inject)注入其中。在这两种情况下,我都击中了 NPE。

严重:无法将 RuntimeException 映射到响应,在 sun 处重新抛出 com.mycompany.common.jee6.glassfish3.webapp.GenericResource.getXml(GenericResource.java:47) 处的 HTTP 容器 java.lang.NullPointerException。 reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(方法.java:597)

为了节省墨水,项目在此处上传

https://bitbucket.org/DessieK/jee6-cdi-webapp/src

4

1 回答 1

3

使您的 JAX-RS 服务成为无状态会话 bean:

@Path("generic")
@Stateless // <- It's an EJB
public class GenericResource {
    @EJB
    NewSessionBean nsb;

    @GET
    @Produces("application/xml")
    public String getXml() {
        nsb.helloWorld();
        return "<hello>World</hello>";
    }
}
于 2013-08-23T08:43:23.277 回答