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

[email protected]
Newsgroups gmane.comp.java.openejb.user
Message-ID <trinity-feffd383-acd5-4fa7-9bc6-de742622774f-1689174890305__10185.939299275$1689174908$gmane$org@3c-app-webde-bap05>
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(AnnotationFinder.java:1203)
	at org.apache.xbean.finder.AnnotationFinder.linkInterfaces(AnnotationFinder.java:440)
	at org.apache.xbean.finder.AnnotationFinder.enableFindImplementations(AnnotationFinder.java:254)
[...]

Caused by: java.lang.ClassNotFoundException: jakarta.management.Notification
	at org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:186)
	at org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:83)
	... 93 more


The following providers:
org.apache.tomee.embedded.EmbeddedTomEEContainer$EmbeddedTomEEContainerProvider
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.