我计划使用RestEasy框架(3.0.11)和servlet 3来实现Rest服务。
我在运行时使用了resteasy上下文来扫描rest服务,但是由于Servlet3.0版本,所以它不是扫描和抛出异常(部署在tomcat7中)。
请你建议我解决这个问题,如何扫描其余的服务?
web.xml的任何示例或配置都会很好。
发布于 2015-08-20 03:46:19
一种方法是,没有任何web.xml (RESTeasy servlet)配置,只有一个空的Application子类,带有@ApplicationPath注释(用于url映射)。
根据JAX规范,在Servlet3.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;
}
}根据规范,一旦我们从这些被覆盖的方法中的任何一个返回一个非空集,就会假设应用程序负责所有的注册,并且类路径注册被禁用。
现在,这不是您想要的,但它只是一个背景,为什么空类工作。
https://stackoverflow.com/questions/32104203
复制相似问题