On Jul 15, 2010, at 9:17 PM, Ivan wrote:

> I think that you might need to define the resource reference in your ejb 
> deployment plan, or server will not map the resource to the bean scope naming 
> context. Or you could directly lookup it by the global naming if the portable 
> application is not your concern.

There are several pieces in this picture that you don't indicate how they 
relate.  If you have code like:

new InitialContext().lookup("java:comp/env/foo")

in a javaee component such as ejb, servlet, or app client, then you have to 
indicate that geronimo should put something in the jndi context for that 
component: the ejb-jar.xml, web.xml, application-client.xml, or use a 
class-level @Resource annotation.  You can also use an @Resource annotation on 
a field and geronimo will do the lookup for you.

If you are looking up a datasource, then in the geronimo plan for your app you 
need to include a dependency on the deployed datasource module (in your example

           <dep:dependency>
           <dep:groupId>console.dbpool</dep:groupId>
           <dep:artifactId>jdbc_testmydb</dep:artifactId>
           <dep:version>1.0</dep:version>
           <dep:type>car</dep:type>
           </dep:dependency>

If the "jdbc/testmydb" part of the lookup matches the name element in the 
connector plan, then you don't need any other info.  If it doesn't, you also 
need a resource--ref in the geronimo plan to match up what you are looking up 
with what is defined.  I'd advise naming the datasource jdbc/testmydb so you 
don't need this mapping.

The jndi lookup will also work in any object reached in the same thread from a 
javaee component.  If you are trying to do this kind of lookup in a spring 
bean, and it is only called from a javaee comonent, and in the same thread, the 
lookup should work.

You can also directly look up the datasource in global jndi without any 
configuration using
new 
InitialContext().lookup("jca:/default/wakapeek-persist-ear/JCAManagedConnectionFactory/testmydb")

hope this helps
david jencks


> 
> 2010/7/16 Billy Vandory <[email protected]>
> 
> I'm still having a problem with this.  I've determined it's not spring, it's
> most likely just a configuration issue.  The problem is trying to get a
> lookup to a global database pool in geronimo.  In an SL-EJB I have:
> 
> InitialContext ctx = new InitialContext();
> DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/testmydb");
> Connection con = ds.getConnection();
> 
> and my deployment plan for the db looks like (copied from geronimo's show
> plan button):
> 
> <connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2";>
>    <dep:environment
> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2";>
>        <dep:moduleId>
>            <dep:groupId>console.dbpool</dep:groupId>
>            <dep:artifactId>jdbc_testmydb</dep:artifactId>
>            <dep:version>1.0</dep:version>
>            <dep:type>car</dep:type>
>        </dep:moduleId>
>        <dep:dependencies>
>            <dep:dependency>
>                <dep:groupId>postgresql</dep:groupId>
>                <dep:artifactId>postgresql-8.2</dep:artifactId>
>                <dep:version>508.jdbc3</dep:version>
>                <dep:type>jar</dep:type>
>            </dep:dependency>
>        </dep:dependencies>
>    </dep:environment>
>    <resourceadapter>
>        <outbound-resourceadapter>
>            <connection-definition>
> 
> <connectionfactory-interface>javax.sql.DataSource</connectionfactory-interface>
>                <connectiondefinition-instance>
>                    <name>testmydb</name>
>                    <config-property-setting
> name="DatabaseName">walmart0192</config-property-setting>
>                    <config-property-setting
> name="Password"></config-property-setting>
>                    <config-property-setting
> name="UserName">itmgr</config-property-setting>
>                    <config-property-setting
> name="ServerName">192.168.0.10</config-property-setting>
>                    <config-property-setting name="PrepareThreshold"/>
>                    <connectionmanager>
>                        <local-transaction/>
>                        <single-pool>
>                            <max-size>10</max-size>
>                            <min-size>0</min-size>
>                            <match-one/>
>                        </single-pool>
>                    </connectionmanager>
>                </connectiondefinition-instance>
>            </connection-definition>
>        </outbound-resourceadapter>
>    </resourceadapter>
> </connector>
> 
> but i always get the exception:
> 
> 80041:  2010-07-15 21:30:06,442 ERROR [CategoryEJB]
> javax.naming.NotContextException: jdbc/testmydb
> 
> Note that I am not running a web app, just an EJB backend, so I am not
> configuring anything in web.xml.  is the configuration in web.xml required?
> I tried it and its the same result, but I would like to rule this out, that
> web.xml resource-ref config is not required if not running in a web app.
> 
> The JNDI name under geronimo's JNDI viewer is: (resource adapters)
> console.dbpool/testmydb/1.0/car
> 
> also shows:
> jca:/default/wakapeek-persist-ear/JCAManagedConnectionFactory/testmydb
> 
> In the geronimo deployment plan i have a connector defined:
> 
> <app:module>
>  <app:connector>tranql-connector-postgresql-local-1.2.rar</app:connector>
>  <app:alt-dd>testmydb.xml</app:alt-dd>
> </app:module>
> 
> Using dbpool in the geronimo console, i can query this database just fine.'
> 
> Any ideas?  Thanks alot.
> Billy
> 
> 
> 
> --
> View this message in context: 
> http://apache-geronimo.328035.n3.nabble.com/Geronimo-2-2-Spring-Hibernate-and-a-Geronimo-managed-DB-Pool-with-XA-driver-tp874759p971182.html
> Sent from the Users mailing list archive at Nabble.com.
> 
> 
> 
> -- 
> Ivan

Reply via email to