簡體   English   中英

休息服務使用RestEasy + servlet 3自動掃描

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM