2014-01-14 386 views
0

我做了很多搜索,我找不到使用Spring託管資源bean的Jersey 2.x junit測試的示例。Jersey 2.x + JUnit + Spring託管資源?

以下是我正在嘗試,它不工作。它的錯誤是MySpringManagedResource沒有參數構造函數,這表明它只是忽略了Spring。

public class MyServiceUnitTest extends JerseyTest { 
    @Override 
    protected Application configure() { 
     return new ResourceConfig(MySpringManagedResource.class). 
       register(org.glassfish.jersey.server.spring.SpringComponentProvider.class). 
       register(MySpringConfigBean.class); 
    } 

    ... 
} 
+1

看看我的答案[這個問題](http://stackoverflow.com/questions/20148269/restful-service-interface-with-jersey/20577797#20577797)。您可以爲Jersey提供您自己的類,負責實例化資源(或者從Spring獲取它們作爲Spring管理的bean)。儘管我的答案涉及到接口,但我不明白爲什麼它不適用於類。 –

回答

0

謝謝你,約翰河導致我的解決方案。如果可以的話,我會將你的標記作爲正確的答案。我最終還是用這樣的:

@Override 
protected Application configure() { 
    ApplicationContext context = new AnnotationConfigApplicationContext(MyConfigClass.class); 
    MyJerseyResource restResource = context.getBean(MyJerseyResource.class); 

    return new ResourceConfig().registerInstances(restResource); 
}