2009-07-31 11 views
0

Je suis ce example . Je continue d'obtenir cette erreur chaque fois que j'appelle trouver: java.lang.NullPointerException at LoginAction.service(LoginAction.java:41) at Dispatcher.doWork(Dispatcher.java:82) at Dispatcher.doGet(Dispatcher.java:64) at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)Comment peut-on déboguer/réparer un retour nul éternel de la recherche d'EntityManager?

Je n'ai aucune idée par où commencer à chercher. La 41ème ligne est operator.findOperator (1), où @EJB private OperatorBeanService operator;

J'essaye de faire ceci sur un Glassfish 2.1. Ceci est la persistance:

<persistence-unit name="persistMe" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>jdbc/peciu</jta-data-source> <properties> <property name="eclipselink.jdbc.batch-writing" value="JDBC"/> <property name="eclipselink.target-database" value="myDB"/> <property name="eclipselink.target-server" value="host"/> <property name="eclipselink.logging.level" value="ALL"/> </properties> </persistence-unit>

J'ai essayé un projet distinct JPA avec cette persistance: <persistence-unit name="OperatorService" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <class>Operator</class> <properties> <property name="eclipselink.jdbc.batch-writing" value="JDBC"/> <property name="eclipselink.jdbc.driver" value="COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver"/> <property name="eclipselink.jdbc.url" value="jdbc:db2://host:50000/myDB"/> <property name="eclipselink.jdbc.user" value="user"/> <property name="eclipselink.jdbc.password" value="pass"/> </properties> </persistence-unit> et cela a fonctionné très bien, renvoyer le résultat de la table de l'opérateur. Je ne sais pas ce qui me manque. Merci pour votre temps. Iulia

Répondre

0

Vous devez comprendre pourquoi votre OperatorBeanService n'est pas injecté (annotation @EJB).

Je suis un peu confus cependant, vous suivez un tutoriel/exemple WebSphere en utilisant glassfish? Peut-être pourriez-vous essayer cela avec WAS pour voir si cela fonctionne? Désolé pour la réponse sans réponse, mais je n'ai pas grand chose à dire.

-Rick

+0

Merci pour votre time.And vous aviez raison, l'injection n'a pas été correct.I suis en utilisant GlassFish parce qu'il est plus facile à installer et parce que toutes mes tentatives d'essayer de configurer Eclipse avec websphere a pris fin en un échec épique. Ce qui m'a aidé à la fin était ce petit article: https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#POJOLocalEJB – Iulia