![](/img/trans.png)
[英]How to handle "resteasy.scan is no longer supported. Use a servlet 3.0 container and the ResteasyServletInitializer" Error
[英]Rest services auto scan using RestEasy + servlet 3
我計划在RestEasy框架(3.0.11)和servlet版本3的幫助下實現Rest服務。
我已經使用resteasy-scan上下文在運行時掃描我的休息服務,但是因為servlet版本3.0因此它不是掃描和拋出異常(部署在tomcat7中)。
你能否建議我解決這個問題,如何掃描其他服務?
web.xml的任何示例或配置都會很好。
沒有任何 web.xml(RESTeasy servlet)配置的一種方法是只有一個空的Application
子類,用@ApplicationPath
注釋(用於url-mapping)。
根據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;
}
}
根據規范,一旦我們從這些重寫方法中的任何一個返回非空集,就假定應用程序負責所有注冊,並且禁用類路徑注冊。
現在這不是你想要的,但它只是為什么空類工作的背景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.