Spring 通过@Resource注释解决WebServiceContext注入问题

Spring 通过@Resource注释解决WebServiceContext注入问题,spring,jax-ws,Spring,Jax Ws,我在通过@Resource annotation注入WebServiceContext时遇到问题。 我正在使用JAXWS+Spring组合。 这是我使用的一段代码 @WebService public class AdminWSImpl { @Resource private WebServiceContext context; ... } my web.xml的一部分: ... <listener> <listener-class>org.spr

我在通过@Resource annotation注入WebServiceContext时遇到问题。 我正在使用JAXWS+Spring组合。 这是我使用的一段代码

@WebService 
public class AdminWSImpl {

  @Resource
  private WebServiceContext context;

...
}
my web.xml的一部分:

...
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


<listener>
    <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>


<servlet>
    <description>JAX-WS endpoint of Admin Service</description>
    <display-name>JAX-WS Admin servlet</display-name>
    <servlet-name>AdminService</servlet-name>
    <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>


<servlet>
    <servlet-name>context</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>     
    <load-on-startup>2</load-on-startup>
</servlet>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
有人能提供帮助吗


提前谢谢你

我找到了现在有效的解决方案! 我将WebService注释与endpointInterface属性放在一起,并添加了由wsimport生成的类implements Admin接口。 My web.xml与问题中描述的相同

  @WebService(endpointInterface = "my.app.admin.Admin")
  public class AdminWSImpl implements Admin{

  @Resource
  private WebServiceContext wsContext;

  public void setWsContext(WebServiceContext wsContext) {
    this.wsContext = wsContext;
}
 }

应该为web服务的返回类型和参数创建
JAXBContext
。既然
WebServiceContext
出现了一个
JAXBContext
正在
AdminWSImpl
上创建。您不应该用注释
@WebMethod(exclude=true)
标记
setWsContext
?我也有..您是否定义了SEI(服务端点交互)?我相信在我的例子中,web服务的契约是SEI,所以只有在管理接口中定义的方法才作为WS方法公开。所以我认为@WebMethod(exclude=true)不是必需的。
  @WebService(endpointInterface = "my.app.admin.Admin")
  public class AdminWSImpl implements Admin{

  @Resource
  private WebServiceContext wsContext;

  public void setWsContext(WebServiceContext wsContext) {
    this.wsContext = wsContext;
}
 }