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

时光怂恿深爱的人放手 提交于 2019-12-21 06:06:24

问题


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)


回答1:


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



来源:https://stackoverflow.com/questions/12893529/how-can-i-create-filter-or-handler-in-restjersey-for-wrapping-jax-rs-requests

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!