Hi

I believe in CXF 2.7.5 name binding are not working with ReaderInterceptor or WriterInterceptor, I did not even know it was required, so did it only for ContainerRequestFilter and ContainerResponseFilter (and client variants).

This definitely has to work on the trunk (CXF 3.0.0-SNAPSHOT), I fixed it to get some early TCK tests passing. But I did not merge it to CXF 2.7.6 - there was a stream of changes to the trunk, some of them went into CXF 2.7.x, some not. I will investigate how realistic it is to merge the related changes to CXF 2.7.7-SNAPSHOT.
I'll update this thread when I get a chance to look into it

Thanks, Sergey


On 01/08/13 03:55, ?????? wrote:
Dear CXF Support,

  I am trying to add a name-binding interceptor in JAX-RS 2.0, but the name 
binding does not work, the interceptor operates as a global interceptor. I have 
writen a name binding filter in the same way successfully. I am not sure what 
the problem is.

  Could you please give me some advice? Thank you very much!!!

  I use apache-cxf-2.7.5,apache-tomcat-6.0.37, and Java 6.

  I setup namebinding in this way:

  @NameBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
public @interface NamesBinding {
  }

  @Provider
@NamesBinding
public class NameInterceptor implements WriterInterceptor{
   @Override
  public void aroundWriteTo(WriterInterceptorContext arg0)
    throws IOException, WebApplicationException {
   arg0.getHeaders().add("MyInterceptorHeader", "From NameBinding Interceptor");
   arg0.setEntity("This is from Name Binding Example.");
   arg0.proceed();
  }
}

  @Path("/user")
public class Server {

  @GET
  @Path("/getString")
  @Produces("text/plain")
  @NamesBinding
  public String getAString(){
   return ".......";
  }
}
  And in the Spring file, Bean.xml, I write the Interceptor as Provider:

  <jaxrs:server id="InterceptorServlet" address="/rest">
    <jaxrs:serviceBeans>
    <ref bean="InterceptorService" />
   </jaxrs:serviceBeans>
    <jaxrs:providers>
    <ref bean="GlobalInterceptor" />
    <ref bean="NameInterceptor" />
   </jaxrs:providers>
    <jaxrs:extensionMappings>
    <entry key="json" value="application/json" />
    <entry key="xml" value="application/xml" />
   </jaxrs:extensionMappings>
    <jaxrs:languageMappings>
    <entry key="en" value="en-gb" />
   </jaxrs:languageMappings>
  </jaxrs:server>

  Thank you very much!

  Sincerely,


  Di Ma
  [email protected]



--
Sergey Beryozkin

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

Blog: http://sberyozkin.blogspot.com

Reply via email to