编程语言
首页 > 编程语言> > Java-使用RestEasy Servlet 3进行Rest Services自动扫描

Java-使用RestEasy Servlet 3进行Rest Services自动扫描

作者:互联网

我计划借助RestEasy框架(3.0.11)和Servlet版本3来实现Rest服务.

我已经使用resteasy-scan上下文在运行时扫描我的rest服务,但是由于servlet 3.0版,因此它不是扫描和抛出异常(在tomcat7中部署).

您能否建议我解决问题,如何扫描其余服务?

web.xml的任何示例或配置都可以.

解决方法:

没有任何web.xml(RESTeasy servlet)配置的一种方法是只具有一个空的Application子类,并用@ApplicationPath注释(用于url映射).

根据JAX-RS规范,如果您具有以下条件,则在Servlet 3.x环境中

@ApplicationPath("/api")
public class MyAppliation extends Application {

}

这足以使应用程序通过类路径扫描注册资源类和提供程序.相反,我们可以通过这种方式显式注册资源类和提供者

@ApplicationPath("/api")
public class MyAppliation extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> classes = new HashSet<Class<?>>();
        classes.add(MyResource.class);
        return classes;
    }
    @Override
    public Set<Object> getSingletons() {
        Set<Object> singletons = new HashSet<Object>();
        singletons.add(new MyFilter());
        return singletons;
    }
}

根据规范,一旦我们从这些覆盖的方法中的任何一个返回非空集,就假定该应用程序负责所有注册,并且禁用了类路径注册.

现在这不是您想要的,而仅仅是空类为何起作用的背景.

标签:jboss7-x,resteasy,java
来源: https://codeday.me/bug/20191028/1948741.html