You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by Christian Schlichtherle <ch...@schlichtherle.de> on 2013/08/27 13:39:19 UTC

TomEE+ fails to restart because of ClassNotFoundException

Hi,

I have an EAR which I can successfully deploy and undeploy on TomEE+ 1.5.2. When the EAR is deployed however, restarting the server fails with this exception:

Aug 27, 2013 1:33:30 PM org.apache.openejb.OpenEJB$Instance <init>
SEVERE: OpenEJB has encountered a fatal error and cannot be started: The Assembler encountered an unexpected error while attempting to build the container system.
java.lang.NoClassDefFoundError: net/java/trueupdate/manager/core/UpdateInstaller
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
	at org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:179)
	at org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:73)
	at org.apache.xbean.finder.archive.JarArchive.loadClass(JarArchive.java:84)
	at org.apache.xbean.finder.archive.CompositeArchive.loadClass(CompositeArchive.java:58)
	at org.apache.openejb.config.FinderFactory$DebugArchive.loadClass(FinderFactory.java:121)
	at org.apache.xbean.finder.AnnotationFinder$ClassInfo.get(AnnotationFinder.java:1258)
	at org.apache.xbean.finder.AnnotationFinder.findMetaAnnotatedFields(AnnotationFinder.java:727)
	at org.apache.xbean.finder.AnnotationFinder.findMetaAnnotatedFields(AnnotationFinder.java:686)
	at org.apache.openejb.config.FinderFactory$ModuleLimitedFinder.findMetaAnnotatedFields(FinderFactory.java:250)
	at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.buildAnnotatedRefs(AnnotationDeployer.java:3511)
	at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2617)
	at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1726)
	at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:344)
	at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:379)
	at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:884)
	at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:726)
	at org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:485)
	at org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:373)
	at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:352)
	at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:147)
	at org.apache.openejb.OpenEJB.init(OpenEJB.java:292)
	at org.apache.openejb.server.Server.init(Server.java:65)
	at org.apache.openejb.server.Main.initServer(Main.java:154)
	at org.apache.openejb.server.Main.main(Main.java:128)
	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.openejb.cli.MainImpl.main(MainImpl.java:148)
	at org.apache.openejb.cli.Bootstrap.main(Bootstrap.java:105)
Caused by: java.lang.ClassNotFoundException: net.java.trueupdate.manager.core.UpdateInstaller
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 41 more

The UpdateInstaller class is a CDI bean which is located in lib/trueupdate-manager-plug-openejb-*.jar within the EAR. The application descriptor looks like this:

<application xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd"
             version="6">
    <module>
        ...
    </module>
    <library-directory>lib</library-directory>
    ...
</application>

What am I doing wrong here?

Regards,
Christian Schlichtherle


Re: TomEE+ fails to restart because of ClassNotFoundException

Posted by Christian Schlichtherle <ch...@schlichtherle.de>.
Hi,

Am 27.08.2013 um 13:39 schrieb Christian Schlichtherle <ch...@schlichtherle.de>:

> The UpdateInstaller class is a CDI bean which is located in lib/trueupdate-manager-plug-openejb-*.jar within the EAR. The application descriptor looks like this:

Errata: Actually it's the interface for a CDI bean and is located in lib/trueupdate-manager-core-*.jar within the EAR.

Regards,
Christian Schlichtherle

Re: TomEE+ fails to restart because of ClassNotFoundException

Posted by Christian Schlichtherle <ch...@schlichtherle.de>.
Hi,

meanwhile I have tried to work around the issue by using a stateless session bean instead. However, it doesn't help at all. I still get ClassNotFoundException, this time for the super classes of my beans.

Regards,
Christian Schlichtherle

Am 27.08.2013 um 13:58 schrieb Romain Manni-Bucau <rm...@gmail.com>:

> What you gave seem correct so I just try to identify the issue. So
> basically you need to check against 1.5.1 and trunk to see if that's a
> regression, fixed bug, bug still in trunk.

Re: TomEE+ fails to restart because of ClassNotFoundException

Posted by Romain Manni-Bucau <rm...@gmail.com>.
What you gave seem correct so I just try to identify the issue. So
basically you need to check against 1.5.1 and trunk to see if that's a
regression, fixed bug, bug still in trunk.


*Romain Manni-Bucau*
*Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
*Github: https://github.com/rmannibucau*



2013/8/27 Christian Schlichtherle <ch...@schlichtherle.de>

> Hi,
>
> so you mean it's a bug? As said, I am using version 1.5.2. Well, the
> problem is I might not be able to convince my customer to use a snapshot
> release. Any other options? Maybe I should refactor to a stateless session
> bean?!
>
> Regards,
> Christian Schlichtherle
>
>

Re: TomEE+ fails to restart because of ClassNotFoundException

Posted by Christian Schlichtherle <ch...@schlichtherle.de>.
Hi,

so you mean it's a bug? As said, I am using version 1.5.2. Well, the problem is I might not be able to convince my customer to use a snapshot release. Any other options? Maybe I should refactor to a stateless session bean?!

Regards,
Christian Schlichtherle


Re: TomEE+ fails to restart because of ClassNotFoundException

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi

Did you test with our snapshot?

Ear is better scanned than before.
Le 27 août 2013 13:40, "Christian Schlichtherle" <ch...@schlichtherle.de>
a écrit :

> Hi,
>
> I have an EAR which I can successfully deploy and undeploy on TomEE+
> 1.5.2. When the EAR is deployed however, restarting the server fails with
> this exception:
>
> Aug 27, 2013 1:33:30 PM org.apache.openejb.OpenEJB$Instance <init>
> SEVERE: OpenEJB has encountered a fatal error and cannot be started: The
> Assembler encountered an unexpected error while attempting to build the
> container system.
> java.lang.NoClassDefFoundError:
> net/java/trueupdate/manager/core/UpdateInstaller
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
>         at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
>         at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
>         at
> org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:179)
>         at
> org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:73)
>         at
> org.apache.xbean.finder.archive.JarArchive.loadClass(JarArchive.java:84)
>         at
> org.apache.xbean.finder.archive.CompositeArchive.loadClass(CompositeArchive.java:58)
>         at
> org.apache.openejb.config.FinderFactory$DebugArchive.loadClass(FinderFactory.java:121)
>         at
> org.apache.xbean.finder.AnnotationFinder$ClassInfo.get(AnnotationFinder.java:1258)
>         at
> org.apache.xbean.finder.AnnotationFinder.findMetaAnnotatedFields(AnnotationFinder.java:727)
>         at
> org.apache.xbean.finder.AnnotationFinder.findMetaAnnotatedFields(AnnotationFinder.java:686)
>         at
> org.apache.openejb.config.FinderFactory$ModuleLimitedFinder.findMetaAnnotatedFields(FinderFactory.java:250)
>         at
> org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.buildAnnotatedRefs(AnnotationDeployer.java:3511)
>         at
> org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2617)
>         at
> org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1726)
>         at
> org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:344)
>         at
> org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:379)
>         at
> org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:884)
>         at
> org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:726)
>         at
> org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:485)
>         at
> org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:373)
>         at
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:352)
>         at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:147)
>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:292)
>         at org.apache.openejb.server.Server.init(Server.java:65)
>         at org.apache.openejb.server.Main.initServer(Main.java:154)
>         at org.apache.openejb.server.Main.main(Main.java:128)
>         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.openejb.cli.MainImpl.main(MainImpl.java:148)
>         at org.apache.openejb.cli.Bootstrap.main(Bootstrap.java:105)
> Caused by: java.lang.ClassNotFoundException:
> net.java.trueupdate.manager.core.UpdateInstaller
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         ... 41 more
>
> The UpdateInstaller class is a CDI bean which is located in
> lib/trueupdate-manager-plug-openejb-*.jar within the EAR. The application
> descriptor looks like this:
>
> <application xmlns="http://java.sun.com/xml/ns/javaee"
>              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/application_6.xsd"
>              version="6">
>     <module>
>         ...
>     </module>
>     <library-directory>lib</library-directory>
>     ...
> </application>
>
> What am I doing wrong here?
>
> Regards,
> Christian Schlichtherle
>
>