You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by "adam.z" <zi...@gmail.com> on 2009/08/10 21:28:41 UTC

OpenEjb undeploying app on startup

Hello,

I'm trying to deploy an EJB 3.0 Hibernate code with two data sources under
OpenEJB without a success. Basically, it's a data access layer with
stateless EJBs modeled as DAOs. After a week of configuration and playing
with docs, I got to the point where the container starts up, but in the log
EJB deployment fails. The error doesn't make sense to me, because OpenEJB
complains about EJB deployments not being found, such as:

2009-08-10 14:04:10,671 - DEBUG - Clearing Sun JarFileFactory cache for
directory /opt/openejb-3.1.1/apps/ch
2009-08-10 14:04:10,672 - DEBUG - App failing deployment may not have
undeployed cleanly: /opt/openejb-3.1.1/apps/ch
org.apache.openejb.UndeployException: Failed undeploying application:
id=/opt/openejb-3.1.1/apps/ch
Nested caused by: 
java.lang.Exception: deployment not found: PsProxyOrderCommitDaoEjb

but earlier in the log it shows it has deployed the very EJB (???):

2009-08-10 14:04:03,347 - INFO  - Auto-deploying ejb
PsProxyOrderCommitDaoEjb:
EjbDeployment(deployment-id=PsProxyOrderCommitDaoEjb)

My app is deployed as exploded JAR (inside /opt/openejb/apps/), and my
entities for the two respective data sources live in:

/opt/openejb/lib/ecommerce-ps-entities.jar
/opt/openejb/lib/ecommerce-web-entities.jar

My interfaces are also bundled separately, and live in:

/opt/openejb/lib/ecommerceejb-api-1.0.jar

In persistence.xml I'm telling hibernate that it can find entities using
<jar-file>../../lib/<jar></jar> and it seems to be happy.

Why is OpenEJB failing though?

adam

PS. clean log is attached from a signle failed deployment 
http://www.nabble.com/file/p24905914/openejb.log openejb.log 


-- 
View this message in context: http://www.nabble.com/OpenEjb-undeploying-app-on-startup-tp24905914p24905914.html
Sent from the OpenEJB User mailing list archive at Nabble.com.


Re: OpenEjb undeploying app on startup

Posted by "adam.z" <zi...@gmail.com>.
Hi - just want to let you know that I figured out the problem. What happened
was that one of the entities compiled into ecommerce-ps-entities.jar was
referencing ConfigurationKey.class, but that code was part of the exploded
JAR living in the apps/ directory. So of course, since library is loaded
before deployable code, ConfigurationKey.class was not loaded yet and so
exception happened. Took me a while to figure that out, but once I moved
ConfigurationKey.class to the entities JAR OpenEJB was happy and log is
clean (see attached).

adam
http://www.nabble.com/file/p24926395/openejb.log openejb.log 


adam.z wrote:
> 
> Hi Jean-Louis,
> 
> Thanks for catching that! I failed to mention this in my original post,
> but those classes do exist in the exploded jar which is being deployed (in
> OpenEJB apps directory). I do not understand why is OpenEJB not seeing
> them? See attached screenshot.
> 
> adam http://www.nabble.com/file/p24924127/screenshot.jpeg screenshot.jpeg 
> 
> 
> Jean-Louis MONTEIRO wrote:
>> 
>> Hello Adam,
>> 
>> Did you try solving first this exception?
>> Caused by: java.lang.NoClassDefFoundError:
>> com/kkamerica/ecommerce/ejb/api/dao/internal/ConfigurationDaoLocal$ConfigurationKey
>> 	at java.lang.Class.getDeclaredMethods0(Native Method)
>> 	at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
>> 	at java.lang.Class.getDeclaredMethods(Class.java:1791)
>> 	at
>> org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredMethodProperties(JavaXClass.java:89)
>> 	at
>> org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredProperties(JavaXClass.java:106)
>> 	at
>> org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredProperties(JavaXClass.java:98)
>> 	at
>> org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(AnnotationBinder.java:1023)
>> 	at
>> org.hibernate.cfg.AnnotationBinder.getElementsToProcess(AnnotationBinder.java:859)
>> 	at
>> org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:667)
>> 	at
>> org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
>> 	at
>> org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
>> 	at
>> org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1148)
>> 	at
>> org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1226)
>> 	at
>> org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:173)
>> 	at
>> org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:854)
>> 	at
>> org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:425)
>> 	at
>> org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131)
>> 	at
>> org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityManagerFactory(PersistenceBuilder.java:183)
>> 	at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:482)
>> 	... 14 more
>> Caused by: java.lang.ClassNotFoundException:
>> com.kkamerica.ecommerce.ejb.api.dao.internal.ConfigurationDaoLocal$ConfigurationKey
>> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>> 	at java.security.AccessController.doPrivileged(Native Method)
>> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>> 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>> 	... 33 more
>> 
>> It seems to me that this error causes deployments issues above.
>> I haven't seen anything else bad in the log file.
>> 
>> Hope it helps.
>> Please let us know if you still have problems.
>> 
>> Jean-Louis
>> 
>> 
>> adam.z wrote:
>>> 
>>> Hello,
>>> 
>>> I'm trying to deploy an EJB 3.0 Hibernate code with two data sources
>>> under OpenEJB without a success. Basically, it's a data access layer
>>> with stateless EJBs modeled as DAOs. After a week of configuration and
>>> playing with docs, I got to the point where the container starts up, but
>>> in the log EJB deployment fails. The error doesn't make sense to me,
>>> because OpenEJB complains about EJB deployments not being found, such
>>> as:
>>> 
>>> 2009-08-10 14:04:10,671 - DEBUG - Clearing Sun JarFileFactory cache for
>>> directory /opt/openejb-3.1.1/apps/ch
>>> 2009-08-10 14:04:10,672 - DEBUG - App failing deployment may not have
>>> undeployed cleanly: /opt/openejb-3.1.1/apps/ch
>>> org.apache.openejb.UndeployException: Failed undeploying application:
>>> id=/opt/openejb-3.1.1/apps/ch
>>> Nested caused by: 
>>> java.lang.Exception: deployment not found: PsProxyOrderCommitDaoEjb
>>> 
>>> but earlier in the log it shows it has deployed the very EJB (???):
>>> 
>>> 2009-08-10 14:04:03,347 - INFO  - Auto-deploying ejb
>>> PsProxyOrderCommitDaoEjb:
>>> EjbDeployment(deployment-id=PsProxyOrderCommitDaoEjb)
>>> 
>>> My app is deployed as exploded JAR (inside /opt/openejb/apps/), and my
>>> entities for the two respective data sources live in:
>>> 
>>> /opt/openejb/lib/ecommerce-ps-entities.jar
>>> /opt/openejb/lib/ecommerce-web-entities.jar
>>> 
>>> My interfaces are also bundled separately, and live in:
>>> 
>>> /opt/openejb/lib/ecommerceejb-api-1.0.jar
>>> 
>>> In persistence.xml I'm telling hibernate that it can find entities using
>>> <jar-file>../../lib/<jar></jar> and it seems to be happy.
>>> 
>>> Why is OpenEJB failing though?
>>> 
>>> adam
>>> 
>>> PS. clean log is attached from a signle failed deployment 
>>> http://www.nabble.com/file/p24905914/openejb.log openejb.log 
>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/OpenEjb-undeploying-app-on-startup-tp24905914p24926395.html
Sent from the OpenEJB User mailing list archive at Nabble.com.


Re: OpenEjb undeploying app on startup

Posted by "adam.z" <zi...@gmail.com>.
Hi Jean-Louis,

Thanks for catching that! I failed to mention this in my original post, but
those classes do exist in the exploded jar which is being deployed (in
OpenEJB apps directory). I do not understand why is OpenEJB not seeing them?
See attached screenshot.

adam http://www.nabble.com/file/p24924127/screenshot.jpeg screenshot.jpeg 


Jean-Louis MONTEIRO wrote:
> 
> Hello Adam,
> 
> Did you try solving first this exception?
> Caused by: java.lang.NoClassDefFoundError:
> com/kkamerica/ecommerce/ejb/api/dao/internal/ConfigurationDaoLocal$ConfigurationKey
> 	at java.lang.Class.getDeclaredMethods0(Native Method)
> 	at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
> 	at java.lang.Class.getDeclaredMethods(Class.java:1791)
> 	at
> org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredMethodProperties(JavaXClass.java:89)
> 	at
> org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredProperties(JavaXClass.java:106)
> 	at
> org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredProperties(JavaXClass.java:98)
> 	at
> org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(AnnotationBinder.java:1023)
> 	at
> org.hibernate.cfg.AnnotationBinder.getElementsToProcess(AnnotationBinder.java:859)
> 	at
> org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:667)
> 	at
> org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
> 	at
> org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
> 	at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1148)
> 	at
> org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1226)
> 	at
> org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:173)
> 	at
> org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:854)
> 	at
> org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:425)
> 	at
> org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131)
> 	at
> org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityManagerFactory(PersistenceBuilder.java:183)
> 	at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:482)
> 	... 14 more
> Caused by: java.lang.ClassNotFoundException:
> com.kkamerica.ecommerce.ejb.api.dao.internal.ConfigurationDaoLocal$ConfigurationKey
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> 	... 33 more
> 
> It seems to me that this error causes deployments issues above.
> I haven't seen anything else bad in the log file.
> 
> Hope it helps.
> Please let us know if you still have problems.
> 
> Jean-Louis
> 
> 
> adam.z wrote:
>> 
>> Hello,
>> 
>> I'm trying to deploy an EJB 3.0 Hibernate code with two data sources
>> under OpenEJB without a success. Basically, it's a data access layer with
>> stateless EJBs modeled as DAOs. After a week of configuration and playing
>> with docs, I got to the point where the container starts up, but in the
>> log EJB deployment fails. The error doesn't make sense to me, because
>> OpenEJB complains about EJB deployments not being found, such as:
>> 
>> 2009-08-10 14:04:10,671 - DEBUG - Clearing Sun JarFileFactory cache for
>> directory /opt/openejb-3.1.1/apps/ch
>> 2009-08-10 14:04:10,672 - DEBUG - App failing deployment may not have
>> undeployed cleanly: /opt/openejb-3.1.1/apps/ch
>> org.apache.openejb.UndeployException: Failed undeploying application:
>> id=/opt/openejb-3.1.1/apps/ch
>> Nested caused by: 
>> java.lang.Exception: deployment not found: PsProxyOrderCommitDaoEjb
>> 
>> but earlier in the log it shows it has deployed the very EJB (???):
>> 
>> 2009-08-10 14:04:03,347 - INFO  - Auto-deploying ejb
>> PsProxyOrderCommitDaoEjb:
>> EjbDeployment(deployment-id=PsProxyOrderCommitDaoEjb)
>> 
>> My app is deployed as exploded JAR (inside /opt/openejb/apps/), and my
>> entities for the two respective data sources live in:
>> 
>> /opt/openejb/lib/ecommerce-ps-entities.jar
>> /opt/openejb/lib/ecommerce-web-entities.jar
>> 
>> My interfaces are also bundled separately, and live in:
>> 
>> /opt/openejb/lib/ecommerceejb-api-1.0.jar
>> 
>> In persistence.xml I'm telling hibernate that it can find entities using
>> <jar-file>../../lib/<jar></jar> and it seems to be happy.
>> 
>> Why is OpenEJB failing though?
>> 
>> adam
>> 
>> PS. clean log is attached from a signle failed deployment 
>> http://www.nabble.com/file/p24905914/openejb.log openejb.log 
>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/OpenEjb-undeploying-app-on-startup-tp24905914p24924127.html
Sent from the OpenEJB User mailing list archive at Nabble.com.


Re: OpenEjb undeploying app on startup

Posted by Jean-Louis MONTEIRO <je...@atosorigin.com>.
Hello Adam,

Did you try solving first this exception?
Caused by: java.lang.NoClassDefFoundError:
com/kkamerica/ecommerce/ejb/api/dao/internal/ConfigurationDaoLocal$ConfigurationKey
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
	at java.lang.Class.getDeclaredMethods(Class.java:1791)
	at
org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredMethodProperties(JavaXClass.java:89)
	at
org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredProperties(JavaXClass.java:106)
	at
org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredProperties(JavaXClass.java:98)
	at
org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(AnnotationBinder.java:1023)
	at
org.hibernate.cfg.AnnotationBinder.getElementsToProcess(AnnotationBinder.java:859)
	at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:667)
	at
org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
	at
org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
	at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1148)
	at
org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1226)
	at
org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:173)
	at
org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:854)
	at
org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:425)
	at
org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131)
	at
org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityManagerFactory(PersistenceBuilder.java:183)
	at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:482)
	... 14 more
Caused by: java.lang.ClassNotFoundException:
com.kkamerica.ecommerce.ejb.api.dao.internal.ConfigurationDaoLocal$ConfigurationKey
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 33 more

It seems to me that this error causes deployments issues above.
I haven't seen anything else bad in the log file.

Hope it helps.
Please let us know if you still have problems.

Jean-Louis


adam.z wrote:
> 
> Hello,
> 
> I'm trying to deploy an EJB 3.0 Hibernate code with two data sources under
> OpenEJB without a success. Basically, it's a data access layer with
> stateless EJBs modeled as DAOs. After a week of configuration and playing
> with docs, I got to the point where the container starts up, but in the
> log EJB deployment fails. The error doesn't make sense to me, because
> OpenEJB complains about EJB deployments not being found, such as:
> 
> 2009-08-10 14:04:10,671 - DEBUG - Clearing Sun JarFileFactory cache for
> directory /opt/openejb-3.1.1/apps/ch
> 2009-08-10 14:04:10,672 - DEBUG - App failing deployment may not have
> undeployed cleanly: /opt/openejb-3.1.1/apps/ch
> org.apache.openejb.UndeployException: Failed undeploying application:
> id=/opt/openejb-3.1.1/apps/ch
> Nested caused by: 
> java.lang.Exception: deployment not found: PsProxyOrderCommitDaoEjb
> 
> but earlier in the log it shows it has deployed the very EJB (???):
> 
> 2009-08-10 14:04:03,347 - INFO  - Auto-deploying ejb
> PsProxyOrderCommitDaoEjb:
> EjbDeployment(deployment-id=PsProxyOrderCommitDaoEjb)
> 
> My app is deployed as exploded JAR (inside /opt/openejb/apps/), and my
> entities for the two respective data sources live in:
> 
> /opt/openejb/lib/ecommerce-ps-entities.jar
> /opt/openejb/lib/ecommerce-web-entities.jar
> 
> My interfaces are also bundled separately, and live in:
> 
> /opt/openejb/lib/ecommerceejb-api-1.0.jar
> 
> In persistence.xml I'm telling hibernate that it can find entities using
> <jar-file>../../lib/<jar></jar> and it seems to be happy.
> 
> Why is OpenEJB failing though?
> 
> adam
> 
> PS. clean log is attached from a signle failed deployment 
> http://www.nabble.com/file/p24905914/openejb.log openejb.log 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/OpenEjb-undeploying-app-on-startup-tp24905914p24912542.html
Sent from the OpenEJB User mailing list archive at Nabble.com.