JNDI + GlassfishV3

meisteryoda

Mitglied
Nabend zusammen,

ich habe hier folgendes Problem:
Eine projekt.war mit einem Filter, welcher auch fehlerfrei läuft. In diesem Filter wird allerdings eine Klasse benutzt die sich bei ihrer Konstruktion aus dem JNDI-Kontext des Glassfish Servers eine Datenbank Verbindung aus einem Connectionpools holen soll.
Diesen habe ich im Admin-Interface eingerichtet ("ping ist ok") und auch eine JDBC-Ressource "jdbc/mysql" angelegt.

Will ich das ganze nun irgendwie abgreifen erscheint bei folgendem Code

PHP:
DataSource ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/mysql");

die Exception:

PHP:
[#|2009-10-20T19:02:44.248+0200|SEVERE|glassfish|null|_ThreadID=58;_ThreadName=Thread-3;|javax.naming.NamingException: Lookup failed for 'java:comp/env' in SerialContext  [Root exception is javax.naming.NamingException: Invocation exception: Got null ComponentInvocation ]
	at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:443)
	at javax.naming.InitialContext.lookup(Unknown Source)
	at javax.naming.InitialContext.lookup(Unknown Source)
	at meineKlasse.<init>(meineKlasse.java:19)
	at test.TestFilter.<init>(TestFilter.java:25)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:161)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:789)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:697)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:951)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:166)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
	at com.sun.grizzly.util.FixedThreadPool$BasicWorker.doWork(FixedThreadPool.java:431)
	at com.sun.grizzly.util.FixedThreadPool$BasicWorker.run(FixedThreadPool.java:410)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.naming.NamingException: Invocation exception: Got null ComponentInvocation 
	at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.getComponentId(GlassfishNamingManagerImpl.java:773)
	at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:655)
	at com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:156)
	at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:429)
	... 36 more
|#]
Die gleiche Exception bekomme ich auch, wenn ich zum beispiel nur den Context "java:comp/env" laden möchte.


Das ganze läuft (poder auch nicht) wie gesagt in einem GlassfishV3 Web Profile Nightly build von heute.

Wäre sehr nett wenn wir jemand sagen könnte was ich falsch mache!!
Vielen Dank im Voraus
 
Hallo, kannst du mir sagen wie man eine existierende Datenbank im Verzeichnisraum einbindet? Benutzt du dafür einen LDAP Server?
 

Neue Beiträge

Zurück