Java 如何在web.xml文件中配置跳过一个类而不转到ContainerRequestFilters下?
我已经用这种方式为我的Jersey Web服务配置了过滤器Java 如何在web.xml文件中配置跳过一个类而不转到ContainerRequestFilters下?,java,jersey,jax-rs,Java,Jersey,Jax Rs,我已经用这种方式为我的Jersey Web服务配置了过滤器 <servlet> <servlet-name>Admin</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-nam
<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.services.admin</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.util.SessionCheckFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Admin</servlet-name>
<url-pattern>/admin/*</url-pattern>
</servlet-mapping>
我的问题是,我可以跳过一个名为AdminLogin.java的类,不进行SessionCheckFilter检查吗
package com.services.admin;
@Path("/adminlogin")
public class AdminLogin {
@GET
@Consumes("application/text")
@Produces("application/json")
public String adminLogin(
@QueryParam(value="password")String password,
@QueryParam(value="admin_mobile")String admin_mobile,@Context HttpServletRequest hsr)
{
}
我正在做一些类似于您所寻找的自定义注释的事情 如果将ResourceInfo注入过滤器,则可以在类或方法级别查找在资源上定义的注释
@Context
private ResourceInfo resourceInfo;
在您的例子中,如果存在注释MyIgnoreAnnotation,您只需绕过过滤器逻辑
if(resource.getResourceClass().isAnnotationPresent(MyIgnoreAnnotation.class))
return;
最后是注释。你应该把它改名为有意义的东西
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyIgnoreAnnotation {
}
祝你好运……谢谢你为寻找什么而发光。当我执行以下操作时ifresourceInfo.getResourceClass.getAnnotationsByTypeMyIgnoreAnnotation.class.length!=0{}我收到编译错误,并且应该显示什么来代替MyIgnoreAnnotation.class。您是否可以帮助创建批注,MyIgnoreAnnotation只是一个占位符。创建注释类并用它注释AdminLogic类。我在上面添加了一个示例。
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyIgnoreAnnotation {
}