Ошибка при доступе к ServicePOJO в JBOSS 5.0.1 - PullRequest
1 голос
/ 02 сентября 2010

У меня есть веб-приложение с 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; 

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

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
{
    ...
}

1 Ответ

0 голосов
/ 03 сентября 2010

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

Ссылки

...