> -----Original Message----- > From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com] > Sent: Friday, March 10, 2017 7:15 AM > To: users@tomee.apache.org > Subject: Re: Setting "openejb.classloader.forced-load" to include > "org.apache.cxf" is still loading some classes from tomee lib dir > > the classloading is not the same for both parts and i need to know if it > is triggered by cxf or the api. Normally the jaxrs client will let the > app one be used instead of the server one since you request it by your > deployment but then question is which part loads the cxf classes from > server
Can you tell from the verbose classloading output? Up to now, I've only provided excerpts of that output. I don't think I'd want to send that entire thing to the list. > 2017-03-10 15:45 GMT+01:00 KARR, DAVID <dk0...@att.com>: > > > > -----Original Message----- > > > From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com] > > > Sent: Friday, March 10, 2017 12:01 AM > > > To: users@tomee.apache.org > > > Subject: Re: Setting "openejb.classloader.forced-load" to include > > > "org.apache.cxf" is still loading some classes from tomee lib dir > > > > > > Can you try dropping jaxrs client api from the webapp (trying to see > > > if issue is only the api or not)? > > > > I don't even have to test this. This app was working fine when it was > > just serving a REST api. I didn't have this problem until I added the > > ClientBuilder reference. > > > > > 2017-03-10 2:08 GMT+01:00 KARR, DAVID <dk0...@att.com>: > > > > > > > > -----Original Message----- > > > > > From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com] > > > > > Sent: Thursday, March 09, 2017 4:39 PM > > > > > To: users@tomee.apache.org > > > > > Subject: Re: Setting "openejb.classloader.forced-load" to > > > > > include "org.apache.cxf" is still loading some classes from > > > > > tomee lib dir > > > > > > > > > > Hi > > > > > > > > > > did you identify which classes was loaded from where? (in term > > > > > of code path and not classloader). Once this is known it would > > > > > be easier to solve it. > > > > > > > > Not quite, but thinking about this gave me a clue, although I > > > > still don't have a solution. > > > > > > > > Right after my code created the "ClientBuilder" instance, I saw it > > > > load javax.ws.rs.client.ClientBuilder from the TomEE lib dir. It > > > > then loads many CXF classes from the same directory. > > > > > > > > So, I figured that I should add "javax.ws.rs.client" to the > > > > "forced- > > > load" > > > > list. > > > > > > > > That just resulted in a different stacktrace: > > > > ----------------- > > > > org.apache.cxf.interceptor.Fault: ClassCastException: attempting > > > > to > > > > castjar:file:.../apache-tomee-webprofile-7.0.1/lib/javaee- > > > > api-7.0.jar!/javax/ws/rs/client/ClientBuilder.class to > > > > jar:file:.../.metadata/.plugins/org.eclipse.wst. > > > > server.core/tmp1/wtpwebapps/uslMonitorService/WEB-INF/lib/ > > > > javax.ws.rs-api-2.0.1.jar!/javax/ws/rs/client/ClientBuilder.class > > > > at org.apache.cxf.service.invoker.AbstractInvoker. > > > > createFault(AbstractInvoker.java:162) > > > > at org.apache.cxf.service.invoker.AbstractInvoker. > > > > invoke(AbstractInvoker.java:128) > > > > at > > > org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:189) > > > > at > > > org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:99) > > > > ... > > > > Caused by: java.lang.LinkageError: ClassCastException: attempting > > > > to > > > > castjar:file:.../apache-tomee-webprofile-7.0.1/lib/javaee- > > > > api-7.0.jar!/javax/ws/rs/client/ClientBuilder.class to > > > > jar:file:.../.metadata/.plugins/org.eclipse.wst. > > > > server.core/tmp1/wtpwebapps/uslMonitorService/WEB-INF/lib/ > > > > javax.ws.rs-api-2.0.1.jar!/javax/ws/rs/client/ClientBuilder.class > > > > at javax.ws.rs.client.ClientBuilder.newBuilder( > > > > ClientBuilder.java:97) > > > > at javax.ws.rs.client.ClientBuilder.newClient( > > > > ClientBuilder.java:114) > > > > --------------- > > > > > > > > > > > > > > > Romain Manni-Bucau > > > > > @rmannibucau <https://urldefense.proofpoint.com/v2/url?u=https-> > > > > > > > > > > > 3A__twitter.com_rmannibucau&d=DwIBaQ&c=LFYZ- > > > > > o9_HUMeMTSQicvjIg&r=OsTemSXEn- > > > > > xy2uk0vYF_EA&m=i7rGuYqiD2shB4GPAkohwmpGuCsHDpMNi6- > > > > > s7wfTVtQ&s=0CK9zOVBU8nHUzp-IbhQ5gTotA_WyMrlt5vS8yZAu20&e= > | > > > > > Blog > > > > > <https://urldefense.proofpoint.com/v2/url?u=https-3A__blog-> > > > > > > 2Drmannibucau.rhcloud.com&d=DwIBaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=Os > > > > > TemS > > > > > XEn- > > > > > xy2uk0vYF_EA&m=i7rGuYqiD2shB4GPAkohwmpGuCsHDpMNi6- > > > > > s7wfTVtQ&s=vb67kZl6WtAWknP-D-_DnsB-_XZdcJWnX8X7pEJ_0Js&e= > | > > > > > Old Blog <https://urldefense.proofpoint.com/v2/url?u=http-> > > > > > > 3A__rmannibucau.wordpress.com&d=DwIBaQ&c=LFYZ- > > > > > o9_HUMeMTSQicvjIg&r=OsTemSXEn- > > > > > xy2uk0vYF_EA&m=i7rGuYqiD2shB4GPAkohwmpGuCsHDpMNi6- > > > > > s7wfTVtQ&s=_lFWMKFTh7BRzFDesYUfFger5PUuDmKNbxsThf7gUmg&e= > | > > > > > Github <https://urldefense.proofpoint.com/v2/url?u=https-> > > > > > > 3A__github.com_rmannibucau&d=DwIBaQ&c=LFYZ- > > > > > o9_HUMeMTSQicvjIg&r=OsTemSXEn- > > > > > xy2uk0vYF_EA&m=i7rGuYqiD2shB4GPAkohwmpGuCsHDpMNi6- > > > > > s7wfTVtQ&s=ceR5hOrxX6nsYrQfLk3tiVkEyjtEZItA1qhm7wJwI5c&e= > | > > > > > LinkedIn <https://urldefense.proofpoint.com/v2/url?u=https-> > > > > > > 3A__www.linkedin.com_in_rmannibucau&d=DwIBaQ&c=LFYZ- > > > > > o9_HUMeMTSQicvjIg&r=OsTemSXEn- > > > > > xy2uk0vYF_EA&m=i7rGuYqiD2shB4GPAkohwmpGuCsHDpMNi6- > > > > > s7wfTVtQ&s=USlF5RKPexLQFpbLeL2nfE2btUQYG7xD1l5UIHjT36s&e= > | > > > > > JavaEE Factory > > > > > <https://urldefense.proofpoint.com/v2/url?u=https-> > > > > > > 3A__javaeefactory-2Drmannibucau.rhcloud.com&d=DwIBaQ&c=LFYZ- > > > > > o9_HUMeMTSQicvjIg&r=OsTemSXEn- > > > > > xy2uk0vYF_EA&m=i7rGuYqiD2shB4GPAkohwmpGuCsHDpMNi6- > > > > > s7wfTVtQ&s=kH6YCQd6PwHCjd2dP0DlyTAhsP_KidkGuQAEuQhJxgs&e= > > > > > > > > > > > 2017-03-10 1:21 GMT+01:00 KARR, DAVID <dk0...@att.com>: > > > > > > > > > > > I'm currently using CXF 3.1.9 and Spring 4.3.5 in an app built > > > > > > with Gradle, and running in Tomcat 8 (TomEE 7.0.1). > > > > > > > > > > > > I currently only specify the following explicit CXF > dependencies: > > > > > > ----------- > > > > > > ['cxf-rt-rs-extension-providers', 'cxf-rt-management'].each { > > > > > > compile "org.apache.cxf:${it}:3.1.9" > > > > > > } > > > > > > ----------- > > > > > > > > > > > > This gets several other artifacts transitively, including cxf- > > > core. > > > > > > > > > > > > Up to now, the app has just been serving REST requests, and > > > > > > it's been working fine. I'm now trying to add a simple request > > > > > > out to another service, using ClientBuilder. When I try to > > > > > > send that message, I get > > > > > this: > > > > > > ------------ > > > > > > SEVERE: Failed to determine BusFactory implementation class > name. > > > > > > java.lang.ClassCastException: class > org.apache.cxf.bus.spring. > > > > > > SpringBusFactory > > > > > > at java.lang.Class.asSubclass(Class.java:3404) > > > > > > at > > > > > > org.apache.cxf.BusFactory.getBusFactoryClass(BusFactory.java:3 > > > > > > 90) > > > > > > ------------ > > > > > > > > > > > > The occurrences of this error seem to imply that there is a > > > > > > classloading issue with BusFactory. So, I turned on verbose > > > > > > classloading, and I did see CXF classes being loaded from both > > > > > > the CXF jars in my webapp, and also in the "lib" dir in TomEE, > > > > > > specifically the BusFactory class. However, in the > > > > > > "system.properties" file in the "Server" definition in > > > > > > Eclipse, I have "openejb.classloader.forced- > > > load=org.springframework,org.apache.cxf" > > > > > (and also "disabled=true" in the "cxf.properties" and "cxf- > > > > > rs.properties" > > > > > > files). So, I appear to have the proper settings to make it > > > > > > load all the CXF (and Spring) classes from my webapp, instead > > > > > > of from the container, but it's not quite working. > > > > > > > > > > > > What else could be wrong here? > > > > > > > > > > > >