我想通过将它存储为servlet上下文属性来共享我的servlet和我的webservice(JAX-WS)之间的对象.但是如何从Web服务中检索servlet上下文?
我通过扩展 SpringBeanAutowiringSupport 公开的 Web 服务无法注入 @Autowired 依赖项。
Web 服务部署正常,我能够调用 @WebMethod,但由于注入失败,我收到 NullPointerException。
我放入System.out.println("Consructing XmlContactMapper...");了 XmlContactMapper 的构造函数(我对 @Autowired 的依赖项之一)。当我部署 Web 服务时,我看到调试行,因此我知道正在调用构造函数。但由于某种原因,XmlContactMapper 的实例没有被注入到我的 ContactServiceImpl xmlMapper 属性中。
关于我做错了什么有什么想法吗?
使用...
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0" metadata-complete="true">
<display-name>contact-sib</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/config/bean-config.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>JaxWsEndpoint</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JaxWsEndpoint</servlet-name>
<url-pattern>/services/contact</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint name="ContactService"
implementation="com.bb.sc.sib.contact.ContactServiceImpl"
url-pattern="/services/contact"/>
</endpoints> …Run Code Online (Sandbox Code Playgroud)