我正在嘗試將一個EJB無狀態bean注入到一個servlet中,但該servlet會引發一個NullPointerExcetion。我正在使用JBOSS來部署EJB和servlet。servlet中的EJB注入失敗
我對Java世界比較陌生,所以我發佈了我遵循的步驟。
接口
package MavenEJB.Bidding`
import javax.ejb.Local;
@Local
public interface PlaceBid {
public String AddBid();
}
豆
package MavenEJB.Bidding;
import javax.ejb.Stateless;
@Stateless(name="PlaceBid")
public class PlaceBidBean implements PlaceBid {
public PlaceBidBean(){}
/**
* Include logic to add the bid
*/
public String AddBid(){
return "Placed bid using EJB";
}
}
我使用maven創建的bean的一個jar文件,我複製的jar文件中的 「部署」 JBOSS的目錄。我能夠看到部署在JMX控制檯中的bean。
全局JNDI名稱空間在JMX控制檯
+- PlaceBid (class: org.jnp.interfaces.NamingContext)
| +- local (proxy: $Proxy63 implements interface MavenEJB.Bidding.PlaceBid,interface org.jboss.ejb3.JBossProxy)
我的servlet代碼
public class PlaceBidServlet extends HttpServlet {
@EJB
private PlaceBid placeBid;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>Hello</TITLE></HEAD>");
out.println("<BODY>");
out.println("Output from EJB" +placeBid.AddBid());
//out.println("Output from EJB");
out.println("</BODY></HTML>");
}
....
}
當我指出我的servlet的URL,我得到NullPointerException異常。當我評論這個bean並打印其他東西時,它的打印效果很好。所以我確信問題在於servlet中的EJB依賴注入。 我嘗試了很多解決方案建議其他地方,沒有什麼真正的工作,有人請幫助我。
你可以接受你自己的答案,所以其他用戶會知道這個問題已經回答。 – 2012-07-06 19:47:33