Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在web.xml文件中配置跳过一个类而不转到ContainerRequestFilters下?_Java_Jersey_Jax Rs - Fatal编程技术网

Java 如何在web.xml文件中配置跳过一个类而不转到ContainerRequestFilters下?

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

我已经用这种方式为我的Jersey Web服务配置了过滤器

 <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 {
}