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

[email protected]
Newsgroups gmane.comp.java.openejb.user
Message-ID <trinity-2fde969a-5277-4e3d-aac8-5fdc9c07e11f-1689231301472@3c-app-webde-bs26>
Thanks a lot, Richard,

I was able to reproduce the behaviour with mininmal effort.

def deltaSpikeVersion = '1.9.6'

dependencies {
    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 + ':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 + ':jakarta'
    testImplementation 'org.apache.deltaspike.modules:deltaspike-servlet-module-impl:' + deltaSpikeVersion + ':jakarta'
    testImplementation 'org.apache.deltaspike.test:test-utils:' + deltaSpikeVersion

    testImplementation platform('org.junit:junit-bom:5.9.1')
    testImplementation 'org.junit.jupiter:junit-jupiter'
}

package com.example;

import jakarta.ejb.embeddable.EJBContainer;
import org.junit.jupiter.api.Test;

class EJBContainerTest {

    @Test
    void testMe() {
        System.setProperty("openejb.deployments.classpath.include", ".*deltaspike.*");

        EJBContainer.createEJBContainer();
    }
}

The following providers:
org.apache.tomee.embedded.EmbeddedTomEEContainer$EmbeddedTomEEContainerProvider
Returned null from createEJBContainer call.

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)

I will open a bug by DeltaSpike when I got Jira access.

Thanks for reducing the cause,
Markus

> Gesendet: Mittwoch, 12. Juli 2023 um 20:17 Uhr
> Von: "Richard Zowalla" <[email protected]>
> An: [email protected]
> Betreff: Re: Upgrading from TomeEE 8 to TomEE 9 -> java.lang.NoClassDefFoundError: jakarta/management/Notification
>
> 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.