ravi chandra
ravi chandra

Reputation: 55

How can i create Filter or Handler in REST(Jersey) for wrapping JAX-RS Requests?

I have some resources in my jax-rs application i want to validate jax-rs request before it enters into the resource annotated by javax.ws.rs.Path. so, how can i create handler or filter for my resources .I have searched so many sites. their suggestions are use proxy or servlet filters . without using proxy or servlet filters can i create handler/ filter ?

Just like in JAX-WS SOAPHandler is available for soap request ,in the same way is there any handlers for validating jax-rs request.

Here Validating jax-rs request means pre-checking, post checking and Exception handling.. (I am using jersey jars)

Upvotes: 2

Views: 16430

Answers (1)

nwallman
nwallman

Reputation: 502

You need to create a Filter that implements the ContainerResponseFilter or ContainerRequestFilter provided by Jersey. Then in your web.xml you define it like so:

<servlet>
    <servlet-name>MY API</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
        <param-value>com.example.filters.ReqFilter</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
        <param-value>com.example.filters.RespFilter</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>MY API</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

http://jersey.java.net/nonav/apidocs/1.6/jersey/com/sun/jersey/spi/container/ContainerRequestFilter.html

http://jersey.java.net/nonav/apidocs/1.6/jersey/com/sun/jersey/spi/container/ContainerResponseFilter.html

Upvotes: 11

Related Questions