Re: Upgrading from TomeEE 8 to TomEE 9 -> java.lang.NoClassDefFoundError: jakarta/management/Notification

Richard Zowalla <[email protected]>
Newsgroups gmane.comp.java.openejb.user
Message-ID <624bf83297526d8496714f874d87096f7c9aecd4.camel__47395.5095325195$1689185892$gmane$org@zowalla.com>
Hi,

I think, that it is a shading error on deltaspike side.
Notification should still be in javax namespace: [1]

I refined the relocation patterns (see [2]) via a PR after 1.9.6 but
there is no 1.9.7 or 2.0.0 yet. Best to ask on the deltaspike list, I
guess.

Gruß
Richard


[1]
https://docs.oracle.com/en/java/javase/17/docs/api/java.management/javax/management/Notification.html

[2] https://issues.apache.org/jira/browse/DELTASPIKE-1434

Am Mittwoch, dem 12.07.2023 um 17:14 +0200 schrieb [email protected]:
> Hi guys,
> 
> I'm updating our project from TomEE 8 to TomEE 9.
> 
> It compiles but our test framework is unhappy during runtime.
> 
> There is some magic which I don't understand in detail.
> 
> First we tell the EJBContainer to use deltaspike:
> 
>    System.setProperty("openejb.deployments.classpath.include",
> ".*deltaspike.*");
> 
> The the EJBContainer will be created.
> 
>    ejbContainer =
> jakarta.ejb.embeddable.EJBContainer.createEJBContainer();
> 
> When checking the module deltaspike-core-impl-1.9.6 which is in the
> classpath an excpetion will be thrown.
> 
> jakarta.ejb.EJBException: No EJBContainer provider available
> Provider named org.apache.openejb.OpenEjbContainer$Provider threw
> unexpected exception at create EJBContainer:
> java.lang.NoClassDefFoundError
> java.lang.NoClassDefFoundError: jakarta/management/Notification
>         at java.base/java.lang.Class.getDeclaredMethods0(Native
> Method)
>         at
> java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
>         at
> java.base/java.lang.Class.getDeclaredMethods(Class.java:2504)
>         at
> org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinde
> r.java:1203)
>         at
> org.apache.xbean.finder.AnnotationFinder.linkInterfaces(AnnotationFin
> der.java:440)
>         at
> org.apache.xbean.finder.AnnotationFinder.enableFindImplementations(An
> notationFinder.java:254)
> [...]
> 
> Caused by: java.lang.ClassNotFoundException:
> jakarta.management.Notification
>         at
> org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.jav
> a:186)
>         at
> org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.jav
> a:83)
>         ... 93 more
> 
> 
> The following providers:
> org.apache.tomee.embedded.EmbeddedTomEEContainer$EmbeddedTomEEContain
> erProvider
> Returned null from createEJBContainer call.
> 
> My understanding is this class jakarta.management.Notification is not
> existing. It should be still javax.management.Notification.
> 
> def deltaSpikeVersion = '1.9.6'
> 
>     testImplementation 'org.apache.tomee:tomee-embedded:9.1.0'
> 
>     testImplementation 'org.apache.deltaspike.cdictrl:deltaspike-
> cdictrl-api:' + deltaSpikeVersion
> //    testImplementation 'org.apache.deltaspike.cdictrl:deltaspike-
> cdictrl-owb:' + deltaSpikeVersion
>     testImplementation 'org.apache.deltaspike.cdictrl:deltaspike-
> cdictrl-owb:' + deltaSpikeVersion + ':jakarta'
>     testImplementation 'org.apache.deltaspike.core:deltaspike-core-
> api:' + deltaSpikeVersion
>     testImplementation 'org.apache.deltaspike.core:deltaspike-core-
> impl:' + deltaSpikeVersion
> //    testImplementation 'org.apache.deltaspike.modules:deltaspike-
> servlet-module-api:' + deltaSpikeVersion
>     testImplementation 'org.apache.deltaspike.modules:deltaspike-
> servlet-module-api:' + deltaSpikeVersion + ':jakarta'
> //    testImplementation 'org.apache.deltaspike.modules:deltaspike-
> servlet-module-impl:' + deltaSpikeVersion
>     testImplementation 'org.apache.deltaspike.modules:deltaspike-
> servlet-module-impl:' + deltaSpikeVersion + ':jakarta'
>     testImplementation 'org.apache.deltaspike.test:test-utils:' +
> deltaSpikeVersion
> 
> Does anybody have an idea what I can do?
> 
> Thanks,
> Markus
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.