我使用的是最新的JDK 6和Glassfish部署與NetBeans在Mac 3.1.2創建一個Maven Web應用程序3.1.2@EJB和@Inject在Glassfish的3.1.2和Java 6都造成NPE
它包含一個基本的JAX-RS服務。我嘗試將SLSB(使用@EJB)和CDI託管bean(@Inject)注入到它中。在這兩種情況下,我都碰到了NPE。
重度:所述的RuntimeException不能被映射到的響應,重新投擲到HTTP容器 顯示java.lang.NullPointerException 在com.mycompany.common.jee6.glassfish3.webapp.GenericResource.getXml(GenericResource的.java:47) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)
節省墨水的項目在這裏上傳
https://bitbucket.org/DessieK/jee6-cdi-webapp/src
優秀。爲什麼沒有這個容器就無法注入JAX-RS服務? – DarVar
@DarVar:這是一種解決方法。 JAX-RS沒有與CDI和EJB集成,所以不可能注入。使這個類成爲一個EJB允許你使用注入。我不確定,但似乎JAX-RS 2.0(JavaEE 7 - 實際上只有Glassfish 4)解決了這個問題。 – Alf