glassfish 3.x.xのJAX-WSエンドポイントで次のCDIが動作しないのはなぜですか?エンドポイントからサービスにアクセスするときは、NPEを取得します。JAX-WSエンドポイントのCDI注入が機能しないNPE
@WebService
public class JaxWsTestEndpoint {
@Inject
private MyService service;
@WebMethod
public String sayHello(String name) {
System.out.println("injected service:" + service);
service.callService();
return "Hello, " + name + ".";
}
}
次のようにクラス "サービス" が定義されています
@Named("myService")
public class MyService {
public MyService() {
System.out.println("init myService.");
}
public void callService() {
System.out.println("calling Service.");
}
}
私はWEB-INF内の空のbeans.xmlファイルを持っているに。私は完全な空の内容と空でそれを試しました
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
タグ。しかし、何らかの形で、JAX-WSエンドポイントのサービスフィールドは、デプロイ後およびWebサービス要求の受信中にNULLのままであり、その結果、サービスを呼び出すときにNPEが発生します。私はここで何が欠けていますか?
それはそれはGlassFishのバグだことも可能です。私が持っていると思いますそれを試してみてください。スペックによれば、それはうまくいくはずです。あなたはWARまたはEARを配備していますか? – LightGuard