You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@openwebbeans.apache.org by Arne Limburg <ar...@openknowledge.de> on 2020/10/01 20:58:04 UTC

ClassLoader issue with cxf and jaxb

Hi guys,

I run into a ClassLoader issue when running a war with meecrowave and java 11, that has jax-b dependencies in it.
I guess it is a problem with cxf.
It seems, that it does a check if jaxb is availabe, finds it, but later on searches in the wrong class loader.

Is there any simple way to package jaxb with meecrowave instead of putting it into the war? I guess that would be a simple fix.

Cheers,
Arne

java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
    at org.apache.cxf.jaxrs.utils.InjectionUtils.handleParameter(InjectionUtils.java:477) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.InjectionUtils.createParameterObject(InjectionUtils.java:1064) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromUriParam(JAXRSUtils.java:1226) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.createHttpParameterValue(JAXRSUtils.java:925) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:900) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:829) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:214) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:78) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225) ~[meecrowave-core-runner.jar:1.2.9]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.meecrowave.cxf.CxfCdiAutoSetup$1.doFilter(CxfCdiAutoSetup.java:122) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [meecrowave-core-runner.jar:1.2.9]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [meecrowave-core-runner.jar:1.2.9]
    at java.lang.Thread.run(Thread.java:834) [?:?]


OPEN KNOWLEDGE GmbH
Poststraße 1, 26122 Oldenburg
Mobil: +49 151 - 108 22 942
Tel: +49 441 - 4082-154
Fax: +49 441 - 4082-111
arne.limburg@openknowledge.de
www.openknowledge.de <https://www.openknowledge.de/>

Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann

Treffen Sie uns auf kommenden Konferenzen und Workshops:

Zu unseren Events<https://www.openknowledge.de/event/>





Re: ClassLoader issue with cxf and jaxb

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Not really cause you can add a custom jaxb provider from the app as any
@Provider I think.

Le ven. 2 oct. 2020 à 20:13, Arne Limburg <ar...@openknowledge.de> a
écrit :

> Hi Romain,
>
>
> thank you, that works. Maybe the detection in cxf should be done using the
> same classloader that was used to load cxf?
>
>
> Cheers,
>
> Arne
>
> *OPEN* KNOWLEDGE GmbH
> Poststraße 1, 26122 Oldenburg
> Mobil: +49 151 - 108 22 942
> Tel: +49 441 - 4082-154
> Fax: +49 441 - 4082-111
> arne.limburg@openknowledge.de
> www.openknowledge.de
>
> Registergericht: Amtsgericht Oldenburg, HRB 4670
> Geschäftsführer: Lars Röwekamp, Jens Schumann
>
>
> *Treffen Sie uns auf kommenden Konferenzen und Workshops: *
> Zu unseren Events <https://www.openknowledge.de/event/>
>
>
>
>
> ------------------------------
> *Von:* Romain Manni-Bucau <rm...@gmail.com>
> *Gesendet:* Freitag, 2. Oktober 2020 08:04
> *An:* user@openwebbeans.apache.org
> *Betreff:* Re: ClassLoader issue with cxf and jaxb
>
> Hi Arne,
>
> We made CXF not requiring JAXB until used and we don't package it because
> it is more and more rarely needed and it makes it lighter.
> You can add jaxb in meecrowave-core classloader/classpath and it will work
> directly.
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> |Old Blog
> <http://rmannibucau.wordpress.com> | Github
> <https://github.com/rmannibucau> |LinkedIn
> <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>
>
> Le jeu. 1 oct. 2020 à 22:58, Arne Limburg <ar...@openknowledge.de>
> a écrit :
>
>> Hi guys,
>>
>> I run into a ClassLoader issue when running a war with meecrowave and
>> java 11, that has jax-b dependencies in it.
>> I guess it is a problem with cxf.
>> It seems, that it does a check if jaxb is availabe, finds it, but later
>> on searches in the wrong class loader.
>>
>> Is there any simple way to package jaxb with meecrowave instead of
>> putting it into the war? I guess that would be a simple fix.
>>
>> Cheers,
>> Arne
>>
>> java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
>>     at
>> jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
>> ~[?:?]
>>     at
>> jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
>> ~[?:?]
>>     at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
>>     at
>> org.apache.cxf.jaxrs.utils.InjectionUtils.handleParameter(InjectionUtils.java:477)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.jaxrs.utils.InjectionUtils.createParameterObject(InjectionUtils.java:1064)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromUriParam(JAXRSUtils.java:1226)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.createHttpParameterValue(JAXRSUtils.java:925)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:900)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:829)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:214)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:78)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.meecrowave.cxf.CxfCdiAutoSetup$1.doFilter(CxfCdiAutoSetup.java:122)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>> ~[meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>> [?:?]
>>     at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>> [?:?]
>>     at
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>> [meecrowave-core-runner.jar:1.2.9]
>>     at java.lang.Thread.run(Thread.java:834) [?:?]
>>
>>

AW: ClassLoader issue with cxf and jaxb

Posted by Arne Limburg <ar...@openknowledge.de>.
Hi Romain,


thank you, that works. Maybe the detection in cxf should be done using the same classloader that was used to load cxf?


Cheers,

Arne


OPEN KNOWLEDGE GmbH
Poststraße 1, 26122 Oldenburg
Mobil: +49 151 - 108 22 942
Tel: +49 441 - 4082-154
Fax: +49 441 - 4082-111
arne.limburg@openknowledge.de
www.openknowledge.de <https://www.openknowledge.de/>

Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann

Treffen Sie uns auf kommenden Konferenzen und Workshops:

Zu unseren Events<https://www.openknowledge.de/event/>





________________________________
Von: Romain Manni-Bucau <rm...@gmail.com>
Gesendet: Freitag, 2. Oktober 2020 08:04
An: user@openwebbeans.apache.org
Betreff: Re: ClassLoader issue with cxf and jaxb

Hi Arne,

We made CXF not requiring JAXB until used and we don't package it because it is more and more rarely needed and it makes it lighter.
You can add jaxb in meecrowave-core classloader/classpath and it will work directly.

Romain Manni-Bucau
@rmannibucau<https://twitter.com/rmannibucau> |  Blog<https://rmannibucau.metawerx.net/> |Old Blog<http://rmannibucau.wordpress.com> | Github<https://github.com/rmannibucau> |LinkedIn<https://www.linkedin.com/in/rmannibucau> | Book<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le jeu. 1 oct. 2020 à 22:58, Arne Limburg <ar...@openknowledge.de>> a écrit :
Hi guys,

I run into a ClassLoader issue when running a war with meecrowave and java 11, that has jax-b dependencies in it.
I guess it is a problem with cxf.
It seems, that it does a check if jaxb is availabe, finds it, but later on searches in the wrong class loader.

Is there any simple way to package jaxb with meecrowave instead of putting it into the war? I guess that would be a simple fix.

Cheers,
Arne

java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
    at org.apache.cxf.jaxrs.utils.InjectionUtils.handleParameter(InjectionUtils.java:477) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.InjectionUtils.createParameterObject(InjectionUtils.java:1064) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromUriParam(JAXRSUtils.java:1226) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.createHttpParameterValue(JAXRSUtils.java:925) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:900) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:829) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:214) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:78) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225) ~[meecrowave-core-runner.jar:1.2.9]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.meecrowave.cxf.CxfCdiAutoSetup$1.doFilter(CxfCdiAutoSetup.java:122) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589) [meecrowave-core-runner.jar:1.2.9]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [meecrowave-core-runner.jar:1.2.9]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [meecrowave-core-runner.jar:1.2.9]
    at java.lang.Thread.run(Thread.java:834) [?:?]


Re: ClassLoader issue with cxf and jaxb

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

We made CXF not requiring JAXB until used and we don't package it because
it is more and more rarely needed and it makes it lighter.
You can add jaxb in meecrowave-core classloader/classpath and it will work
directly.

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le jeu. 1 oct. 2020 à 22:58, Arne Limburg <ar...@openknowledge.de> a
écrit :

> Hi guys,
>
> I run into a ClassLoader issue when running a war with meecrowave and java
> 11, that has jax-b dependencies in it.
> I guess it is a problem with cxf.
> It seems, that it does a check if jaxb is availabe, finds it, but later on
> searches in the wrong class loader.
>
> Is there any simple way to package jaxb with meecrowave instead of putting
> it into the war? I guess that would be a simple fix.
>
> Cheers,
> Arne
>
> java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
>     at
> jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
> ~[?:?]
>     at
> jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
> ~[?:?]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
>     at
> org.apache.cxf.jaxrs.utils.InjectionUtils.handleParameter(InjectionUtils.java:477)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.jaxrs.utils.InjectionUtils.createParameterObject(InjectionUtils.java:1064)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromUriParam(JAXRSUtils.java:1226)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.createHttpParameterValue(JAXRSUtils.java:925)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:900)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:829)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:214)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:78)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.meecrowave.cxf.CxfCdiAutoSetup$1.doFilter(CxfCdiAutoSetup.java:122)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> ~[meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
> [meecrowave-core-runner.jar:1.2.9]
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> [?:?]
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> [?:?]
>     at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> [meecrowave-core-runner.jar:1.2.9]
>     at java.lang.Thread.run(Thread.java:834) [?:?]
>
> *OPEN* KNOWLEDGE GmbH
> Poststraße 1, 26122 Oldenburg
> Mobil: +49 151 - 108 22 942
> Tel: +49 441 - 4082-154
> Fax: +49 441 - 4082-111
> arne.limburg@openknowledge.de
> www.openknowledge.de
>
> Registergericht: Amtsgericht Oldenburg, HRB 4670
> Geschäftsführer: Lars Röwekamp, Jens Schumann
>
>
> *Treffen Sie uns auf kommenden Konferenzen und Workshops: *
> Zu unseren Events <https://www.openknowledge.de/event/>
>
>
>
>
>