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