Hi A lot of improvements have been done since 2.2.6 in the way Spring AOP proxies can be dealt with, this error was reported awhile back and it was due to JAXRSInvoker trying to invoke on the proxy as opposed to the wrapped service object.
One thing you might want to try is to enforce a CGLIB proxification in the importing context, see an example in the end of this section: http://cxf.apache.org/docs/jax-rs.html#JAX-RS-JAXRSandSpringAOP Another option is to experiment with registering a custom invoker, see http://cxf.apache.org/docs/jax-rs-filters.html#JAX-RSFilters-Custominvokers What you can try to do in this custom invoker is to replace the proxy resourceObject being passed to it in the invoke() with the real object, using org.apache.cxf.common.util.ClassHelper.getRealObject(object), or may be just copying the relevant code from JAXRSInvoker in say CXF 2.2.11 tag Try moving the CXF version a bit till it starts working... Sure, no problems re providing the vague info :-). That said, you may just want to try to emulate it all, just have a single basic root resource (a single method only) and have some basic app contexts imported too, anything that can help to reproduce it, I think it should work on the trunk, but I'd like to try to reproduce the issue. Cheers, Sergey On Mon, Apr 4, 2011 at 5:56 PM, jjurkiew <[email protected]> wrote: > The CXF version is 2.2.6 if I can believe the jar names bundled in our > application stack. > > Sincerely, > -- Jared > > > On 4/4/11 12:54 PM, "jjurkiew" <[email protected]> wrote: > > Unfortunately I can’t since it is an internal application. I have to be > vague about it. It’s definitely a Spring setup. All I did was follow the > other team’s suggestion of importing their bean config via: > > <import resource="classpath:META-INF/ourFramework/our_core.xml" /> > <import resource="classpath:META-INF/spring/framework.xml" /> > > With that imported, our CXF services fail. Without it, ours work. > > Can you give me pointers of where to dig or what to look for in files (such > as those noted above) that might be the cause? I know it’s not very > helpful to you to be vague, but I have to be careful with IP. > > Sincerely, > -- Jared > > > On 4/4/11 12:43 PM, "Sergey Beryozkin" <[email protected]> wrote: > > Hi, > > That is a Spring proxy issue, a complete error message explains it. > How do you import ? Is it an application context which is being imported, > or packages (via Import-Package) ? > What CXF version do you use ? Can you prepare a simple test or bundle for > me to try it locally ? > > Cheers, Sergey > > > On Mon, Apr 4, 2011 at 5:30 PM, jjurkiew <[email protected]> wrote: > > The function it fails on with the rest of the stack is: > > org.apache.cxf.interceptor.Fault: object is not an instance of declaring > class while invoking public javax.xml.bind.JAXBElement <Our Package>.<Our > Class>.que > ry(java.lang.String,java.lang.String) > at > org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:159) > > at > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:133) > at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:130) > at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:82) > > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) > > And I checked the function def denoted in the class: > @Path("/registry") > public class OurClass implements OurInterface { > > @GET > @Produces({JSON_CONTENT_TYPE, XML_CONTENT_TYPE}) > public JAXBElement query( > @QueryParam("id") @DefaultValue("") String id, > @QueryParam("xpath") @DefaultValue("/") String xpath) > > So it does have a get with the denoted return type. This only throws when > I import a set of CXF classes from another team. If it’s just our code in > the app, works fine. As soon as I import their code, blows up. > > I’m trying to get trace turned on now to see if I can figure out what is > going on. > > Sincerely, > -- Jared > > > > On 4/4/11 12:07 PM, "Sergey Beryozkin" <[email protected] < > http://[email protected]> > wrote: > > Hi > > What most likely happens is that you have a JAX-RS resource method with a > single @Path annotation (but no @GET/@POST) which returns JAXBElement - if > it is the case then JAXBElement will be assumed to be a JAX-RS subresource. > > Can you double check it please ? If you can't find the cause then please > post a sample resource & configuration which I can try to reproduce a > problem > > Fine/trace-level logging will tell you all about the resolution process as > well, > > Cheers, Sergey > > On Mon, Apr 4, 2011 at 4:37 PM, Jared_J <[email protected] < > http://[email protected]> > wrote: > > In an application I'm working on, I import two sets of CXF-based classes to > implement some basic rest services. I find that when both are imported, I > get this error when I try to access one of the services: > > CXF object is not an instance of declaring class while invoking public > javax.xml.bind.JAXBElement > > But it tells me little else, such as what the classname actually was that > it > got. Is there any simple way to track down the source of this error? Is > there tracing that can be turned on in CXF? Any advice would be vastly > appreciated. > > Sincerely, > -- Jared > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/Trying-to-track-down-cause-of-a-vague-CXF-error-tp4282081p4282081.html > Sent from the cxf-user mailing list archive at Nabble.com. > > > > > >
