Zum Inhalt springen

Fehler beim Aufruf einer eigenen Finder Methode in einer Entity Bean


Empfohlene Beiträge

Geschrieben

Hallo,

ich beschäftige mich zur Zeit ein wenig mit CMP Entity Beans.

Dazu habe ich auf einer Oracle 9i Datenbank eine Tabelle mit 3 Spalten angelegt.

Benutzernummer Primary Key (Dieser wird beim Anlegen eines Datensatzes automatisch aus einer Sequence gefüllt)

Benutzername String

Passwort String

Auf diese Tabelle greife ich mit Hilfe einer DataSource zu. Diese DataSource wurde auch schon im Websphere Application Server eingerichtet und erfolgreich getestet.

Mir ist es auch schon gelungen mit Hilfe der Entity Bean einen neuen Datensatz anzulegen und mit Hilfe der generierten findByPrimaryKey Methode auszulesen.

Im nächsten Schritt habe ich im Deployment Deskriptor der EntityBean eine neue Methode eingetragen die einen Benutzer anhand des Namens finden soll.

Wenn ich diese Methode aufrufe bekomme ich jedoch folgende Exception:


19.09.06 15:17:15:438 CEST] 00000168 DataAccessReq E   PMGR0000E: Aufruf-Stack:

com.ibm.ws.ejbpersistence.utilpm.PersistenceManagerException: PMGR6022E: Bei der Verwendung des Adapters für das Erstellen oder Ausführen einer Interaktion ist ein Fehler aufgetreten. ???

	at com.ibm.ws.ejbpersistence.dataaccess.DataAccessRequestImpl.execute(Unknown Source)

	at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanStatefulInstanceExtensionImpl.executeQuery(Unknown Source)

	at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanStatefulInstanceExtensionImpl.executeFind(Unknown Source)

	at sample.ConcreteTbl_benutzer_4d762f35.ejbFindByName_Local(ConcreteTbl_benutzer_4d762f35.java:104)

	at sample.EJSCMPTbl_benutzerHomeBean_4d762f35.findByName_Local(EJSCMPTbl_benutzerHomeBean_4d762f35.java:25)

	at sample.EJSLocalCMPTbl_benutzerHome_4d762f35.findByName(EJSLocalCMPTbl_benutzerHome_4d762f35.java:106)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))

	at java.lang.reflect.Method.invoke(Method.java(Compiled Code))

	at com.ibm.etools.utc.model.ReflectionMethodModel.invoke(ReflectionMethodModel.java:65)

	at com.ibm.etools.utc.servlet.InvokeServlet.invoke(InvokeServlet.java:111)

	at com.ibm.etools.utc.servlet.InvokeServlet.doPost(InvokeServlet.java:367)

	at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))

	at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))

	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))

	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code))

	at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java(Compiled Code))

	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java(Compiled Code))

	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java(Compiled Code))

	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java(Compiled Code))

	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java(Compiled Code))

	at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java(Compiled Code))

	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))

	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))

	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))

	at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))

	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

Caused by: java.lang.NullPointerException

	at sample.websphere_deploy.ORACLE_V9_1.Tbl_benutzerBeanFunctionSet_4d762f35.execute(Tbl_benutzerBeanFunctionSet_4d762f35.java:326)

	at com.ibm.ws.rsadapter.cci.WSInteractionImpl.execute(WSInteractionImpl.java:486)

	at com.ibm.wsspi.ejbpersistence.WSEJBToRAAdapter.executeFinder(WSEJBToRAAdapter.java:212)

	at com.ibm.ws.rsadapter.cci.WSRelationalRAAdapter.executeFinder(WSRelationalRAAdapter.java:371)

	... 29 more


[19.09.06 15:17:15:438 CEST] 00000168 ExceptionUtil E   CNTR0019E: EJB hat eine unerwartete (nicht deklarierte) Ausnahme beim Aufruf der Methode "findByName" ausgelöst. Ausnahmedaten: com.ibm.ws.exception.WsEJBException

	at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanStatefulInstanceExtensionImpl.executeFind(Unknown Source)

	at sample.ConcreteTbl_benutzer_4d762f35.ejbFindByName_Local(ConcreteTbl_benutzer_4d762f35.java:104)

	at sample.EJSCMPTbl_benutzerHomeBean_4d762f35.findByName_Local(EJSCMPTbl_benutzerHomeBean_4d762f35.java:25)

	at sample.EJSLocalCMPTbl_benutzerHome_4d762f35.findByName(EJSLocalCMPTbl_benutzerHome_4d762f35.java:106)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))

	at java.lang.reflect.Method.invoke(Method.java(Compiled Code))

	at com.ibm.etools.utc.model.ReflectionMethodModel.invoke(ReflectionMethodModel.java:65)

	at com.ibm.etools.utc.servlet.InvokeServlet.invoke(InvokeServlet.java:111)

	at com.ibm.etools.utc.servlet.InvokeServlet.doPost(InvokeServlet.java:367)

	at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))

	at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))

	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))

	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code))

	at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java(Compiled Code))

	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java(Compiled Code))

	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java(Compiled Code))

	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java(Compiled Code))

	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java(Compiled Code))

	at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java(Compiled Code))

	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))

	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))

	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))

	at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))

	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

Caused by: com.ibm.ws.ejbpersistence.utilpm.PersistenceManagerException: PMGR6022E: Bei der Verwendung des Adapters für das Erstellen oder Ausführen einer Interaktion ist ein Fehler aufgetreten. ???

	at com.ibm.ws.ejbpersistence.dataaccess.DataAccessRequestImpl.execute(Unknown Source)

	at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanStatefulInstanceExtensionImpl.executeQuery(Unknown Source)

	... 27 more

Caused by: java.lang.NullPointerException

	at sample.websphere_deploy.ORACLE_V9_1.Tbl_benutzerBeanFunctionSet_4d762f35.execute(Tbl_benutzerBeanFunctionSet_4d762f35.java:326)

	at com.ibm.ws.rsadapter.cci.WSInteractionImpl.execute(WSInteractionImpl.java:486)

	at com.ibm.wsspi.ejbpersistence.WSEJBToRAAdapter.executeFinder(WSEJBToRAAdapter.java:212)

	at com.ibm.ws.rsadapter.cci.WSRelationalRAAdapter.executeFinder(WSRelationalRAAdapter.java:371)

	... 29 more

Hat jemand Erfahrung mit diesem Fehler und kann mir erklären wie er zu stande kommt. Als Entwicklungsumgebung nutze ich den Rational Application Developer 6.0

Ich hoffe die Angaben sind ausführlich genug und jemand hat eine Lösung für dieses Problem.

Geschrieben

Servus,

mit dem RAD habe ich zwar keine Erfahrungen, aber Du könntest mal die generierte Klasse durchschauen, in der die NullPointerException auftritt. Die ist der eigentliche Grund für den Fehler. Vielleicht findest Du da was.

Peter

Geschrieben

Servus,

was hast Du denn anpassen müssen? Eigentlich würde ich zunächst auf einen Fehler in der Konfiguration tippen, wenn eine NPE in einer generierten Methode auftreten kann. Sonst wäre der Generator Mist. :)

So hast Du beim nächsten Erzeugen der Klassen wieder das gleiche Problem.

Peter

Geschrieben
Servus,

was hast Du denn anpassen müssen?

Das erzeugte PreparedStatement war Murks. Der Tabellenname wurde mit eine \q vor den Feldnamen gesetzt.

Nachdem ich das Statement so umgeschrieben habe wie es bei findByPrimaryKey stand funktioniert es einwandfrei.

Freitag kann ich den merkwürdigen Code mal posten vielleicht kann mich jemand auf meinen Konfigfehler hinweisen

Geschrieben

So sah der generierte Code aus


select  q1.\"BENUTZERNUMMER\",  q1.\"BENUTZERNAME\",  q1.\"PASSWORT\" from TVRB0.TBL_BENUTZER q1 where  ( q1.\"BENUTZERNAME\" = ?)

und dieses q1 musste ich entfernen.

Hat jemand eine Idee was da beim generieren falsch gelaufen ist ?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...