Ошибка при доступе к ServicePOJO в JBOSS 5.0.1

У меня есть веб-приложение с EJB и ServicePOJO. Когда я пытаюсь получить доступ к одному из этих POJOS, я получаю следующую ошибку:

java.lang.NullPointerException
 at com.sonydadc.MyAPP.pa.server.PA_Bean.getServername(PA_Bean.java:539)
 at org.apache.jsp.templates.start_jsp._jspService(start_jsp.java:104)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638)
 at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:543)
 at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:480)
 at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
 at org.apache.jsp.login.login_jsp._jspService(login_jsp.java:101)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638)
 at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:444)
 at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)
 at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:310)
 at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage(FormAuthenticator.java:316)
 at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:244)
 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
 at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
 at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 at java.lang.Thread.run(Thread.java:619)

Моя система: Jboss 5.0.1 EJB 3.0 MyFaces 1.1

Кто-нибудь может предоставить некоторую информацию?

Обновление: вот код: Вот как я ввожу объект POJO

@EJB(mappedName = "service/ServPOJOBean") 
@IgnoreDependency 
private ServPOJOBean mb; 

И это строка, которая вызывает исключение nullpointer:

mb.getValue("servername");

Странно: это работает, когда я ищу ServicePOJO следующим образом:

MBeanServer server = MBeanServerLocator.locate(); 
ServPOJOBean mb = (ServPOJOBean) MBeanProxyExt.
                             create(ServPOJOBean.class, "jboss:service=ServPOJOBean");

Обновить

Вот как я определил класс ServicePoJO:

@Service(objectName = "jboss:service=ServPOJOBean")
@Management(ServPOJOBean.class)
@Local(ServPOJOBean.class)
@LocalBinding(jndiBinding = "service/ServPOJOBean")
public class ServPOJOBeanImpl implements ServPOJOBean
{
    ...
}

person blnzn    schedule 02.09.2010    source источник
comment
У вас есть NullPointerException, выбрасываемый из вашего собственного кода. Мы никак не сможем помочь вам с этим, не видя, как выглядит код.   -  person skaffman    schedule 02.09.2010


Ответы (1)


Проблема в том, что внедрение вашего Service POJOS использование аннотации @EJB в настоящее время не работает, поэтому NullPointerException. Честно говоря, я даже не знал, что это возможно - по приведенным ниже ссылкам это кажется "расширенным" EJB 3, так и должно быть - но если это так, дважды проверьте имя JNDI удаленного интерфейса. И, возможно, покажите код вашего сервиса POJO.

Рекомендации

person Pascal Thivent    schedule 03.09.2010
comment
Привет, этот способ внедрения ServicePOJO описан в книге Jboss 5 AS Developement, стр. 241. Имя JNDI должно быть правильным, потому что я могу без проблем внедрить объект этой службы в другой EJB. Спасибо за ссылки кстати. Я разместил код ServiePOJO в своем первом сообщении (см. обновление). - person blnzn; 03.09.2010
comment
@binzn Хорошо, спасибо и за ссылку, я посмотрю на это. Но, тем не менее, инъекция здесь не происходит, иначе вы не получите NPE. Каковы тогда различия между обоими EJB (тот, который работает, и другой)? Работает ли в текущей, если убрать другую? - person Pascal Thivent; 03.09.2010
comment
хм, вообще-то я что-то не так написал. Где инъекция работает, это сервлет, а не EJB. Простите за это. И он не работает в резервном компоненте, размещенном в проекте JSF. (Кстати, извините за мой английский. Я не так часто говорю по-английски) - person blnzn; 03.09.2010