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 ?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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