6
我使用的是Jetty 9.1和Jersey 2.5.1。新澤西州已經內置了對碼頭的支持,所以我開始我的服務器這樣的:Jetty Embedded,澤西島2,焊接
public static void main(String[] args) {
URI baseUri = UriBuilder.fromUri("http://localhost/").port(8080).build();
ResourceConfig config = ResourceConfig.forApplicationClass(MyApplication.class);
Server server = JettyHttpContainerFactory.createServer(baseUri, config);
}
MyApplication的只是調用this.packages(...)
查找我的REST API類。
但是,REST api類包含一個@Inject
帶註釋的字段,它應該由WELD注入。很明顯,WELD沒有啓動(CDI支持沒有啓用)和怪異的,它看起來像HK2(澤西島2使用)試圖執行注射。
(當碰到REST端點時,我有一個org.glassfish.hk2.api.UnsatisfiedDependencyException
)。
如何正確設置WELD(最好以編程方式)?
確保您使用的是Weld 2.2+,因爲它只是修復了Jetty 9.1+的一些CDI集成bug。 –