首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RestEasy + servlet 3实现Rest服务自动扫描

使用RestEasy + servlet 3实现Rest服务自动扫描
EN

Stack Overflow用户
提问于 2015-08-19 19:36:52
回答 1查看 1.5K关注 0票数 3

我计划使用RestEasy框架(3.0.11)和servlet 3来实现Rest服务。

我在运行时使用了resteasy上下文来扫描rest服务,但是由于Servlet3.0版本,所以它不是扫描和抛出异常(部署在tomcat7中)。

请你建议我解决这个问题,如何扫描其余的服务?

web.xml的任何示例或配置都会很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 03:46:19

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

根据JAX规范,在Servlet3.x环境中,如果您有以下内容

代码语言:javascript
复制
@ApplicationPath("/api")
public class MyAppliation extends Application {

}

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

代码语言:javascript
复制
@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;
    }
}

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

现在,这不是您想要的,但它只是一个背景,为什么空类工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32104203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档