为什么以下 CDI 在 glassfish 3.x.x 的 JAX-WS 端点中不起作用?从端点访问服务时,我收到 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。我在这里缺少什么?
最佳答案
您可以尝试从 WEB-INF 目录中删除 sun-jaxws.xml。这个方法对我很有帮助!
关于java - JAX-WS 端点中的 CDI 注入(inject)不起作用,导致 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8522999/