Hello,

I'm testing with TomEE 1.7.3
I'm describing the resource using the following system properties:

mypostgres=new://Resource?type=DataSource
mypostgres.JdbcDriver=org.postgresql.Driver
mypostgres.JdbcUrl=url
mypostgres.UserName=user
mypostgres.Password=password
mypostgres.JtaManaged=true
mypostgres.Lazy=true
mypostgres.UseAppClassLoader=true
mypostgres.InitializeAfterDeployment=false

I supply the driver with my web application (WEB-INF/lib).

Regardless that I specify that I want initialization of the resource to
happen on the first lookup with the application class loader, my application
fails with the exceptions below.

When I debugged I saw that 
The first time - OpenEJBNamingContextListener.bindResource - case 1) below
the loader is StandardClassLoader and UseAppClassLoader=true.
At this point, UseAppClassLoader property is removed. The lookup is not
working because of the loader.
org.apache.openejb.assembler.classic.Assembler.newLazyResource(ResourceInfo)
row 2536

The second time - PersistenceBuilder.createEntityManagerFactory - case 2)
below
the loader is the webapp classloader but UseAppClassLoader=false because it
was removed on the previous step and the lookup is not working anymore.

>From my point of view the property should not be removed in order to enable
this scenario.


Thanks,
Violeta


1)
SEVERE: Unable to lookup Global Tomcat resource mypostgres
javax.naming.NamingException: Unable to resolve class org.postgresql.Driver
        at
org.apache.openejb.core.ivm.naming.LazyObjectReference.getObject(LazyObjectReference.java:39)
        at
org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:175)
        at
org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:123)
        at
org.apache.tomee.common.AbstractObjectFactory.lookup(AbstractObjectFactory.java:102)
        at
org.apache.tomee.common.AbstractObjectFactory.getObjectInstance(AbstractObjectFactory.java:51)
        at
org.apache.tomee.common.ResourceFactory.getObjectInstance(ResourceFactory.java:49)
        at
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:141)
        at 
javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:842)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:167)
        at
org.apache.tomee.catalina.OpenEJBNamingContextListener.bindResource(OpenEJBNamingContextListener.java:266)
        at
org.apache.tomee.catalina.OpenEJBNamingContextListener.addResource(OpenEJBNamingContextListener.java:256)
        at
org.apache.tomee.catalina.OpenEJBNamingContextListener.processInitialNamingResources(OpenEJBNamingContextListener.java:223)
        at
org.apache.tomee.catalina.OpenEJBNamingContextListener.start(OpenEJBNamingContextListener.java:92)
        at
org.apache.tomee.catalina.OpenEJBNamingContextListener.lifecycleEvent(OpenEJBNamingContextListener.java:74)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
        at 
org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347)
        at
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)

2)
org.apache.openejb.OpenEJBException: Could not lookup <jta-data-source>
'openejb/Resource/mypostgres' for unit 'persistence-with-ejb': Unable to
resolve class org.postgresql.Driver: Could not lookup <jta-data-source>
'openejb/Resource/mypostgres' for unit 'persistence-with-ejb': Unable to
resolve class org.postgresql.Driver
        at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:843)
        at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:677)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1261)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1100)
        at
org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5419)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
        at 
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1095)
        at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1930)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.openejb.OpenEJBException:
org.apache.openejb.OpenEJBException: Could not lookup <jta-data-source>
'openejb/Resource/mypostgres' for unit 'persistence-with-ejb': Unable to
resolve class org.postgresql.Driver: Could not lookup <jta-data-source>
'openejb/Resource/mypostgres' for unit 'persistence-with-ejb': Unable to
resolve class org.postgresql.Driver
        at
org.apache.openejb.assembler.classic.Assembler.loadPersistenceUnits(Assembler.java:988)
        at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:741)
        ... 18 more
Caused by: org.apache.openejb.OpenEJBException: Could not lookup
<jta-data-source> 'openejb/Resource/mypostgres' for unit
'persistence-with-ejb': Unable to resolve class org.postgresql.Driver
        at
org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityManagerFactory(PersistenceBuilder.java:93)
        at
org.apache.openejb.assembler.classic.Assembler.loadPersistenceUnits(Assembler.java:982)
        ... 19 more
Caused by: javax.naming.NamingException: Unable to resolve class
org.postgresql.Driver
        at
org.apache.openejb.core.ivm.naming.LazyObjectReference.getObject(LazyObjectReference.java:39)
        at
org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:175)
        at
org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityManagerFactory(PersistenceBuilder.java:87)
        ... 20 more




--
View this message in context: 
http://tomee-openejb.979440.n4.nabble.com/Resource-and-UseAppClassLoader-question-tp4677073.html
Sent from the TomEE Users mailing list archive at Nabble.com.

Reply via email to