kleinevroni
Mitglied
Hallo,
ich hoffe das ist keine allzu doofe Anfänger Frage, aber ich hab jetzt einen Tag rumprobiert und komm auf keinen grünen Zweig
Also, ich benutze Glassfish v2.1 und EJB2.1 (noch ...)
Ich habe eine SessionBean mit den Deployment-Deskriptoren ejb-jar.xml und sun-ejb-jar.xml. Die Bean ist deployed, ich kann sie verwenden, alles passt.
ejb-jar:
sun-ejb-jar
Dann gibts da noch eine Datenbank.
Im Glassfish ist der Connection Pool erzeugt & kann gepingt werden.
Die JDBC Resource heißt "myPool" und verweist auf den Pool.
Wenn ich von einer anderen EJB oder von irgendeinem Client aus einen lookUp auf myPool mache, kann ich mir eine Connection erzeugen und auf die DB zugreifen.
So weit so gut.
Jetzt will/muss ich aber nicht einen lookUp auf "myPool" machen, sondern auf "myDataSource". Ich dachte, dass der Glassfish mit den beiden xml-Dateien von der der jdbc/myDataSource zu myPool findet.
Aber so einfach ist das wohl nicht.
Folgendes hab ich probiert:
dataSource = (DataSource) ctx.lookup("myPool"); --> this works!
dataSource = (DataSource) ctx.lookup("myDataSource");
dataSource = (DataSource) ctx.lookup("jdbc/myDataSource");
dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/myDataSource");
Habt ihr eine Idee? Ich kann leider nicht mehr Infos bereitstellen, weil ich gar nicht weiß was relevant sein könnte :-(
ich hoffe das ist keine allzu doofe Anfänger Frage, aber ich hab jetzt einen Tag rumprobiert und komm auf keinen grünen Zweig

Also, ich benutze Glassfish v2.1 und EJB2.1 (noch ...)
Ich habe eine SessionBean mit den Deployment-Deskriptoren ejb-jar.xml und sun-ejb-jar.xml. Die Bean ist deployed, ich kann sie verwenden, alles passt.
ejb-jar:
Code:
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>****</ejb-name>
<home>com.....****Home</home>
<remote>com.....***Remote</remote>
<ejb-class>com......****</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<resource-ref>
<res-ref-name>jdbc/myDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
</enterprise-beans>
</ejb-jar>
sun-ejb-jar
Code:
<sun-ejb-jar>
<enterprise-beans>
<ejb>
<ejb-name>***</ejb-name>
<jndi-name>***</jndi-name>
<resource-ref>
<res-ref-name>jdbc/myDataSource</res-ref-name>
<jndi-name>myPool</jndi-name>
</resource-ref>
<pass-by-reference>false</pass-by-reference>
</ejb>
</enterprise-beans>
</sun-ejb-jar>
Dann gibts da noch eine Datenbank.
Im Glassfish ist der Connection Pool erzeugt & kann gepingt werden.
Die JDBC Resource heißt "myPool" und verweist auf den Pool.
Wenn ich von einer anderen EJB oder von irgendeinem Client aus einen lookUp auf myPool mache, kann ich mir eine Connection erzeugen und auf die DB zugreifen.
So weit so gut.
Jetzt will/muss ich aber nicht einen lookUp auf "myPool" machen, sondern auf "myDataSource". Ich dachte, dass der Glassfish mit den beiden xml-Dateien von der der jdbc/myDataSource zu myPool findet.
Aber so einfach ist das wohl nicht.
Folgendes hab ich probiert:
dataSource = (DataSource) ctx.lookup("myPool"); --> this works!
dataSource = (DataSource) ctx.lookup("myDataSource");
dataSource = (DataSource) ctx.lookup("jdbc/myDataSource");
dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/myDataSource");
Habt ihr eine Idee? Ich kann leider nicht mehr Infos bereitstellen, weil ich gar nicht weiß was relevant sein könnte :-(
Zuletzt bearbeitet: