You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by 芷樱~ <10...@qq.com> on 2013/08/06 04:27:04 UTC

Question about ReaderInterceptor

Hi,
  
 I am trying to use ReaderInterceptor, but it seems like it does not work at all, because it even does not work for println();
  
 I use apache-cxf-2.7.5,apache-tomcat-6.0.37, Java 6, and set up the ReaderInterceptor as Provider in Spring, Bean.xml.
  
 This is my code:
  
  @Override
 public Object aroundReadFrom(ReaderInterceptorContext arg0)
   throws IOException, WebApplicationException {
  System.out.println("This is from ReaderInterceptor.");
  return arg0.proceed();
 }
  
 And there is no message showed. 
  
 Also, if I try to call the arg0.getHeaders(), there will shows error:
 Throwable occurred: java.lang.IllegalStateException
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1597)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
        at java.lang.Class.getDeclaredMethodsImpl(Native Method)
        at java.lang.Class.getDeclaredMethods(Class.java:748)
        at com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
dMethods(ReflectionNavigator.java:262)
        at com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
dMethods(ReflectionNavigator.java:59)
        at com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:93)
        at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Mode
lBuilder.java:358)
        at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Mode
lBuilder.java:328)
        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(J
AXBContextImpl.java:444)
        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:291)
        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1128)
        at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:181)
        at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:134)
        at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:229)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at javax.xml.bind.ContextFinder.newInstanceContextFinder.java:139)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:301)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
        at org.apache.cxf.ws.addressing.VersionTransformerNames200408.getJAXBCo
ntext(VersionTransformer.java:543)
        at org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext
(VersionTransformer.java:482)
        at org.apache.cxf.ws.addressing.soap.MAPCodec.unmarshalMAPs(MAPCodec.java:488)
        at org.apache.cxf.ws.addressing.soap.MAPCodec.decode(MAPCodec.java:674)
        at org.apache.cxf.ws.addressing.soap.MAPCodec.mediate(MAPCodec.java:171)
         at org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:121)
        at org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:78)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
        at org.apache.cxf.transport.udp.UDPDestination$MCastListener$2.run(UDPDestination.java:106)
        at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
        at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
        at java.lang.Thread.run(Thread.java:773)
Exception in thread "default-workqueue-9" ava.lang.NoClassDefFoundError: org.apache.cxf.ws.addressing.v200408.Relationship
        at java.lang.Class.getDeclaredMethodsImpl(Native Method)
        at java.lang.Class.getDeclaredMethods(Class.java:748)
        at com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
dMethods(ReflectionNavigator.java:262)
        at com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
dMethods(ReflectionNavigator.java:59)
        at com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:93)
        at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Mode
lBuilder.java:358)
        at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Mode
lBuilder.java:328)
        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(J
AXBContextImpl.java:444)
        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:291)
        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1128)
        at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:181)
        at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:134)
        at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:229)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.
java:60)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at javax.xml.bind.ContextFinder.newInstanceContextFinder.java:139)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:301)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
        at org.apache.cxf.ws.addressing.VersionTransformer$Names200408.getJAXBContext(VersionTransformer.java:543)
        at org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext
(VersionTransformer.java:482)
        at org.apache.cxf.ws.addressing.soap.MAPCodec.unmarshalMAPs(MAPCodec.java:488)
        at org.apache.cxf.ws.addressing.soap.MAPCodec.decode(MAPCodec.java:674)
        at org.apache.cxf.ws.addressing.soap.MAPCodec.mediate(MAPCodec.java:171)
         at org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:121)
        at org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.jav
a:78)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
orChain.java:271)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
        at org.apache.cxf.transport.udp.UDPDestination$MCastListener$2.run(UDPDestination.java:106)
        at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
        at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
        at java.lang.Thread.run(Thread.java:773)
Caused by: java.lang.ClassNotFoundException: org.apache.cxf.ws.addressing.v200408.Relationship
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
        ... 36 more
  
 I am not sure what the problem is. Could you please give me some advice?
  
 Thank you very much!
  
 Sincerely,
  
 Di Ma
 105634105@qq.com

Re: Re: Question about ReaderInterceptor

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi

I guess ReaderInterceptors are really for decorating the input and if 
really needed blocking MBRs, but I don't think they are meant to replace 
MBRs which is where you will deal with the actual reading.

Cheers, Sergey
On 07/08/13 04:41, 芷樱~ wrote:
> Hi,
> Thank you very much for your help.
> I just wondering if I have to use JAXBContext in a ReaderInterceptor?
> Can I use ReaderInterceptor for just I/O operation?
> In the document, jsr339-jaxrs-2.0-final-spec, there is an example about
> ReaderInterceptor (page 40):
> @Provider
> class GzipInterceptor implements ReaderInterceptor{
>
> @Override
> Object aroundReadFrom(ReaderInterceptorContext ctx) ... {
> if (isGzipped(ctx)) {
> InputStream old = ctx.getInputStream();
> ctx.setInputStream(new GZIPInputStream(old));
> try {
> return ctx.proceed();
> } finally {
> ctx.setInputStream(old);
> }
> } else {
> return ctx.proceed();
> }
> }
> ...
> }
> Can I use ReaderInterceptor like this example?
> Could you please give me some advice?
> Thank you very much!
> Sincerely,
> Di Ma
> ------------------ 原始邮件 ------------------
> *发件人:* "Sergey Beryozkin"<sb...@gmail.com>;
> *发送时间:* 2013年8月6日(星期二) 晚上11:30
> *收件人:* "users"<us...@cxf.apache.org>;
> *抄送:* "芷樱~"<10...@qq.com>;
> *主题:* Re: Question about ReaderInterceptor
>
> Hi
>
> Please try the latest 2.7.7-SNAPSHOT, Dan did some related updates to
> WS-A related code which might help resolving your issue
>
> Cheers, Sergey
> On 06/08/13 10:36, Sergey Beryozkin wrote:
>  > Hi
>  >
>  > This is something to do WS-Addressing related JAXBContext
>  > initialization, as per the trace below, which can only happen on the WS
>  > call.
>  > Do you have some WS-to-RS or RS-to-WS bridge ?
>  > org.apache.cxf.ws.addressing.v200408.Relationship needs to be resolved
>  > somehow (I can see it the generated sources).
>  >
>  > Cheers, Sergey
>  >
>  > On 06/08/13 03:27, 芷樱~ wrote:
>  >> Hi,
>  >>
>  >>   I am trying to use ReaderInterceptor, but it seems like it does not
>  >> work at all, because it even does not work for println();
>  >>
>  >>   I use apache-cxf-2.7.5,apache-tomcat-6.0.37, Java 6, and set up the
>  >> ReaderInterceptor as Provider in Spring, Bean.xml.
>  >>
>  >>   This is my code:
>  >>
>  >>    @Override
>  >>   public Object aroundReadFrom(ReaderInterceptorContext arg0)
>  >>     throws IOException, WebApplicationException {
>  >>    System.out.println("This is from ReaderInterceptor.");
>  >>    return arg0.proceed();
>  >>   }
>  >>
>  >>   And there is no message showed.
>  >>
>  >>   Also, if I try to call the arg0.getHeaders(), there will shows error:
>  >>   Throwable occurred: java.lang.IllegalStateException
>  >>          at
>  >>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1597)
>  >>
>  >>          at
>  >>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
>  >>
>  >>          at java.lang.Class.getDeclaredMethodsImpl(Native Method)
>  >>          at java.lang.Class.getDeclaredMethods(Class.java:748)
>  >>          at
>  >> com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
>  >> dMethods(ReflectionNavigator.java:262)
>  >>          at
>  >> com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
>  >> dMethods(ReflectionNavigator.java:59)
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:93)
>  >>
>  >>          at
>  >> com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Mode
>  >> lBuilder.java:358)
>  >>          at
>  >> com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Mode
>  >> lBuilder.java:328)
>  >>          at
>  >> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(J
>  >> AXBContextImpl.java:444)
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:291)
>  >>
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1128)
>  >>
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:181)
>  >>
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:134)
>  >>
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:229)
>  >>
>  >>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  >>          at
>  >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
>  >>
>  >>          at
>  >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>  >>
>  >>          at java.lang.reflect.Method.invoke(Method.java:611)
>  >>          at
>  >> javax.xml.bind.ContextFinder.newInstanceContextFinder.java:139)
>  >>          at javax.xml.bind.ContextFinder.find(ContextFinder.java:301)
>  >>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
>  >>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
>  >>          at
>  >> org.apache.cxf.ws.addressing.VersionTransformerNames200408.getJAXBCo
>  >> ntext(VersionTransformer.java:543)
>  >>          at
>  >> org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext
>  >> (VersionTransformer.java:482)
>  >>          at
>  >>
> org.apache.cxf.ws.addressing.soap.MAPCodec.unmarshalMAPs(MAPCodec.java:488)
>  >>
>  >>          at
>  >> org.apache.cxf.ws.addressing.soap.MAPCodec.decode(MAPCodec.java:674)
>  >>          at
>  >> org.apache.cxf.ws.addressing.soap.MAPCodec.mediate(MAPCodec.java:171)
>  >>           at
>  >>
> org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:121)
>  >>
>  >>          at
>  >>
> org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:78)
>  >>
>  >>          at
>  >>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>  >>
>  >>          at
>  >>
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>  >>
>  >>          at
>  >>
> org.apache.cxf.transport.udp.UDPDestination$MCastListener$2.run(UDPDestination.java:106)
>  >>
>  >>          at
>  >>
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
>  >>
>  >>          at
>  >>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
>  >>
>  >>          at
>  >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
>  >>
>  >>          at
>  >>
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
>  >>
>  >>          at java.lang.Thread.run(Thread.java:773)
>  >> Exception in thread "default-workqueue-9"
>  >> ava.lang.NoClassDefFoundError:
>  >> org.apache.cxf.ws.addressing.v200408.Relationship
>  >>          at java.lang.Class.getDeclaredMethodsImpl(Native Method)
>  >>          at java.lang.Class.getDeclaredMethods(Class.java:748)
>  >>          at
>  >> com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
>  >> dMethods(ReflectionNavigator.java:262)
>  >>          at
>  >> com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
>  >> dMethods(ReflectionNavigator.java:59)
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:93)
>  >>
>  >>          at
>  >> com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Mode
>  >> lBuilder.java:358)
>  >>          at
>  >> com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Mode
>  >> lBuilder.java:328)
>  >>          at
>  >> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(J
>  >> AXBContextImpl.java:444)
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:291)
>  >>
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1128)
>  >>
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:181)
>  >>
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:134)
>  >>
>  >>          at
>  >>
> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:229)
>  >>
>  >>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  >>          at
>  >> sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.
>  >> java:60)
>  >>          at
>  >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>  >>
>  >>          at java.lang.reflect.Method.invoke(Method.java:611)
>  >>          at
>  >> javax.xml.bind.ContextFinder.newInstanceContextFinder.java:139)
>  >>          at javax.xml.bind.ContextFinder.find(ContextFinder.java:301)
>  >>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
>  >>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
>  >>          at
>  >>
> org.apache.cxf.ws.addressing.VersionTransformer$Names200408.getJAXBContext(VersionTransformer.java:543)
>  >>
>  >>          at
>  >> org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext
>  >> (VersionTransformer.java:482)
>  >>          at
>  >>
> org.apache.cxf.ws.addressing.soap.MAPCodec.unmarshalMAPs(MAPCodec.java:488)
>  >>
>  >>          at
>  >> org.apache.cxf.ws.addressing.soap.MAPCodec.decode(MAPCodec.java:674)
>  >>          at
>  >> org.apache.cxf.ws.addressing.soap.MAPCodec.mediate(MAPCodec.java:171)
>  >>           at
>  >>
> org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:121)
>  >>
>  >>          at
>  >> org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.jav
>  >> a:78)
>  >>          at
>  >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
>  >> orChain.java:271)
>  >>          at
>  >>
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>  >>
>  >>          at
>  >>
> org.apache.cxf.transport.udp.UDPDestination$MCastListener$2.run(UDPDestination.java:106)
>  >>
>  >>          at
>  >>
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
>  >>
>  >>          at
>  >>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
>  >>
>  >>          at
>  >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
>  >>
>  >>          at
>  >>
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
>  >>
>  >>          at java.lang.Thread.run(Thread.java:773)
>  >> Caused by: java.lang.ClassNotFoundException:
>  >> org.apache.cxf.ws.addressing.v200408.Relationship
>  >>          at
>  >>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
>  >>
>  >>          at
>  >>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
>  >>
>  >>          ... 36 more
>  >>
>  >>   I am not sure what the problem is. Could you please give me some
>  >> advice?
>  >>
>  >>   Thank you very much!
>  >>
>  >>   Sincerely,
>  >>
>  >>   Di Ma
>  >>   105634105@qq.com
>  >>
>  >
>  >
>  > -
>


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Re: Question about ReaderInterceptor

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi

Please try the latest 2.7.7-SNAPSHOT, Dan did some related updates to 
WS-A related code which might help resolving your issue

Cheers, Sergey
On 06/08/13 10:36, Sergey Beryozkin wrote:
> Hi
>
> This is something to do WS-Addressing related JAXBContext
> initialization, as per the trace below, which can only happen on the WS
> call.
> Do you have some WS-to-RS or RS-to-WS bridge ?
> org.apache.cxf.ws.addressing.v200408.Relationship needs to be resolved
> somehow (I can see it the generated sources).
>
> Cheers, Sergey
>
> On 06/08/13 03:27, 芷樱~ wrote:
>> Hi,
>>
>>   I am trying to use ReaderInterceptor, but it seems like it does not
>> work at all, because it even does not work for println();
>>
>>   I use apache-cxf-2.7.5,apache-tomcat-6.0.37, Java 6, and set up the
>> ReaderInterceptor as Provider in Spring, Bean.xml.
>>
>>   This is my code:
>>
>>    @Override
>>   public Object aroundReadFrom(ReaderInterceptorContext arg0)
>>     throws IOException, WebApplicationException {
>>    System.out.println("This is from ReaderInterceptor.");
>>    return arg0.proceed();
>>   }
>>
>>   And there is no message showed.
>>
>>   Also, if I try to call the arg0.getHeaders(), there will shows error:
>>   Throwable occurred: java.lang.IllegalStateException
>>          at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1597)
>>
>>          at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
>>
>>          at java.lang.Class.getDeclaredMethodsImpl(Native Method)
>>          at java.lang.Class.getDeclaredMethods(Class.java:748)
>>          at
>> com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
>> dMethods(ReflectionNavigator.java:262)
>>          at
>> com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
>> dMethods(ReflectionNavigator.java:59)
>>          at
>> com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:93)
>>
>>          at
>> com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Mode
>> lBuilder.java:358)
>>          at
>> com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Mode
>> lBuilder.java:328)
>>          at
>> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(J
>> AXBContextImpl.java:444)
>>          at
>> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:291)
>>
>>          at
>> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1128)
>>
>>          at
>> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:181)
>>
>>          at
>> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:134)
>>
>>          at
>> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:229)
>>
>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>          at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
>>
>>          at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>>
>>          at java.lang.reflect.Method.invoke(Method.java:611)
>>          at
>> javax.xml.bind.ContextFinder.newInstanceContextFinder.java:139)
>>          at javax.xml.bind.ContextFinder.find(ContextFinder.java:301)
>>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
>>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
>>          at
>> org.apache.cxf.ws.addressing.VersionTransformerNames200408.getJAXBCo
>> ntext(VersionTransformer.java:543)
>>          at
>> org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext
>> (VersionTransformer.java:482)
>>          at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.unmarshalMAPs(MAPCodec.java:488)
>>
>>          at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.decode(MAPCodec.java:674)
>>          at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.mediate(MAPCodec.java:171)
>>           at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:121)
>>
>>          at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:78)
>>
>>          at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>>
>>          at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>>
>>          at
>> org.apache.cxf.transport.udp.UDPDestination$MCastListener$2.run(UDPDestination.java:106)
>>
>>          at
>> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
>>
>>          at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
>>
>>          at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
>>
>>          at
>> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
>>
>>          at java.lang.Thread.run(Thread.java:773)
>> Exception in thread "default-workqueue-9"
>> ava.lang.NoClassDefFoundError:
>> org.apache.cxf.ws.addressing.v200408.Relationship
>>          at java.lang.Class.getDeclaredMethodsImpl(Native Method)
>>          at java.lang.Class.getDeclaredMethods(Class.java:748)
>>          at
>> com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
>> dMethods(ReflectionNavigator.java:262)
>>          at
>> com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
>> dMethods(ReflectionNavigator.java:59)
>>          at
>> com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:93)
>>
>>          at
>> com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Mode
>> lBuilder.java:358)
>>          at
>> com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Mode
>> lBuilder.java:328)
>>          at
>> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(J
>> AXBContextImpl.java:444)
>>          at
>> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:291)
>>
>>          at
>> com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1128)
>>
>>          at
>> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:181)
>>
>>          at
>> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:134)
>>
>>          at
>> com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:229)
>>
>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>          at
>> sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.
>> java:60)
>>          at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>>
>>          at java.lang.reflect.Method.invoke(Method.java:611)
>>          at
>> javax.xml.bind.ContextFinder.newInstanceContextFinder.java:139)
>>          at javax.xml.bind.ContextFinder.find(ContextFinder.java:301)
>>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
>>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
>>          at
>> org.apache.cxf.ws.addressing.VersionTransformer$Names200408.getJAXBContext(VersionTransformer.java:543)
>>
>>          at
>> org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext
>> (VersionTransformer.java:482)
>>          at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.unmarshalMAPs(MAPCodec.java:488)
>>
>>          at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.decode(MAPCodec.java:674)
>>          at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.mediate(MAPCodec.java:171)
>>           at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:121)
>>
>>          at
>> org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.jav
>> a:78)
>>          at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
>> orChain.java:271)
>>          at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>>
>>          at
>> org.apache.cxf.transport.udp.UDPDestination$MCastListener$2.run(UDPDestination.java:106)
>>
>>          at
>> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
>>
>>          at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
>>
>>          at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
>>
>>          at
>> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
>>
>>          at java.lang.Thread.run(Thread.java:773)
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.cxf.ws.addressing.v200408.Relationship
>>          at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
>>
>>          at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
>>
>>          ... 36 more
>>
>>   I am not sure what the problem is. Could you please give me some
>> advice?
>>
>>   Thank you very much!
>>
>>   Sincerely,
>>
>>   Di Ma
>>   105634105@qq.com
>>
>
>
> -


Re: Question about ReaderInterceptor

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi

This is something to do WS-Addressing related JAXBContext 
initialization, as per the trace below, which can only happen on the WS 
call.
Do you have some WS-to-RS or RS-to-WS bridge ?
org.apache.cxf.ws.addressing.v200408.Relationship needs to be resolved 
somehow (I can see it the generated sources).

Cheers, Sergey

On 06/08/13 03:27, 芷樱~ wrote:
> Hi,
>
>   I am trying to use ReaderInterceptor, but it seems like it does not work at all, because it even does not work for println();
>
>   I use apache-cxf-2.7.5,apache-tomcat-6.0.37, Java 6, and set up the ReaderInterceptor as Provider in Spring, Bean.xml.
>
>   This is my code:
>
>    @Override
>   public Object aroundReadFrom(ReaderInterceptorContext arg0)
>     throws IOException, WebApplicationException {
>    System.out.println("This is from ReaderInterceptor.");
>    return arg0.proceed();
>   }
>
>   And there is no message showed.
>
>   Also, if I try to call the arg0.getHeaders(), there will shows error:
>   Throwable occurred: java.lang.IllegalStateException
>          at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1597)
>          at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
>          at java.lang.Class.getDeclaredMethodsImpl(Native Method)
>          at java.lang.Class.getDeclaredMethods(Class.java:748)
>          at com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
> dMethods(ReflectionNavigator.java:262)
>          at com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
> dMethods(ReflectionNavigator.java:59)
>          at com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:93)
>          at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Mode
> lBuilder.java:358)
>          at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Mode
> lBuilder.java:328)
>          at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(J
> AXBContextImpl.java:444)
>          at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:291)
>          at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1128)
>          at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:181)
>          at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:134)
>          at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:229)
>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>          at java.lang.reflect.Method.invoke(Method.java:611)
>          at javax.xml.bind.ContextFinder.newInstanceContextFinder.java:139)
>          at javax.xml.bind.ContextFinder.find(ContextFinder.java:301)
>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
>          at org.apache.cxf.ws.addressing.VersionTransformerNames200408.getJAXBCo
> ntext(VersionTransformer.java:543)
>          at org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext
> (VersionTransformer.java:482)
>          at org.apache.cxf.ws.addressing.soap.MAPCodec.unmarshalMAPs(MAPCodec.java:488)
>          at org.apache.cxf.ws.addressing.soap.MAPCodec.decode(MAPCodec.java:674)
>          at org.apache.cxf.ws.addressing.soap.MAPCodec.mediate(MAPCodec.java:171)
>           at org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:121)
>          at org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:78)
>          at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>          at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>          at org.apache.cxf.transport.udp.UDPDestination$MCastListener$2.run(UDPDestination.java:106)
>          at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
>          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
>          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
>          at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
>          at java.lang.Thread.run(Thread.java:773)
> Exception in thread "default-workqueue-9" ava.lang.NoClassDefFoundError: org.apache.cxf.ws.addressing.v200408.Relationship
>          at java.lang.Class.getDeclaredMethodsImpl(Native Method)
>          at java.lang.Class.getDeclaredMethods(Class.java:748)
>          at com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
> dMethods(ReflectionNavigator.java:262)
>          at com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator.getDeclare
> dMethods(ReflectionNavigator.java:59)
>          at com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:93)
>          at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Mode
> lBuilder.java:358)
>          at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Mode
> lBuilder.java:328)
>          at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(J
> AXBContextImpl.java:444)
>          at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:291)
>          at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1128)
>          at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:181)
>          at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:134)
>          at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:229)
>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>          at sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.
> java:60)
>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>          at java.lang.reflect.Method.invoke(Method.java:611)
>          at javax.xml.bind.ContextFinder.newInstanceContextFinder.java:139)
>          at javax.xml.bind.ContextFinder.find(ContextFinder.java:301)
>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
>          at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
>          at org.apache.cxf.ws.addressing.VersionTransformer$Names200408.getJAXBContext(VersionTransformer.java:543)
>          at org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext
> (VersionTransformer.java:482)
>          at org.apache.cxf.ws.addressing.soap.MAPCodec.unmarshalMAPs(MAPCodec.java:488)
>          at org.apache.cxf.ws.addressing.soap.MAPCodec.decode(MAPCodec.java:674)
>          at org.apache.cxf.ws.addressing.soap.MAPCodec.mediate(MAPCodec.java:171)
>           at org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.java:121)
>          at org.apache.cxf.ws.addressing.soap.MAPCodec.handleMessage(MAPCodec.jav
> a:78)
>          at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
> orChain.java:271)
>          at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>          at org.apache.cxf.transport.udp.UDPDestination$MCastListener$2.run(UDPDestination.java:106)
>          at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
>          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
>          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
>          at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
>          at java.lang.Thread.run(Thread.java:773)
> Caused by: java.lang.ClassNotFoundException: org.apache.cxf.ws.addressing.v200408.Relationship
>          at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
>          at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
>          ... 36 more
>
>   I am not sure what the problem is. Could you please give me some advice?
>
>   Thank you very much!
>
>   Sincerely,
>
>   Di Ma
>   105634105@qq.com
>


-