gpt4 book ai didi

jax-rs - 我如何在 REST(Jersey) 中创建过滤器或处理程序来包装 JAX-RS 请求?

转载 作者:行者123 更新时间:2023-12-04 02:46:08 25 4
gpt4 key购买 nike

我的 jax-rs 应用程序中有一些资源 我想在它进入由 javax.ws.rs.Path 注释的资源之前验证 jax-rs 请求。那么,我如何为我的资源创建处理程序或过滤器。我搜索了很多网站。他们的建议是使用代理或 servlet 过滤器。我可以在不使用代理或 servlet 过滤器的情况下创建处理程序/过滤器吗?

就像在 JAX-WS SOAPHandler 中可用于 soap 请求一样,同样有任何处理程序用于验证 jax-rs 请求。

这里Validating jax-rs request意味着预检查,后检查和异常处理.. (我正在使用 Jersey jar )

最佳答案

您需要创建一个实现 Jersey 提供的 ContainerResponseFilter 或 ContainerRequestFilter 的过滤器。然后在您的 web.xml 中,您可以这样定义它:

<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

关于jax-rs - 我如何在 REST(Jersey) 中创建过滤器或处理程序来包装 JAX-RS 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12893529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com