当前位置:  开发笔记 > 编程语言 > 正文

如何从JAX-WS Web服务中访问ServletContext?

如何解决《如何从JAX-WSWeb服务中访问ServletContext?》经验,为你挑选了1个好方法。

我想通过将它存储为servlet上下文属性来共享我的servlet和我的webservice(JAX-WS)之间的对象.但是如何从Web服务中检索servlet上下文?



1> Jens Bannman..:

JAX-WS通过消息上下文提供servlet上下文,消息上下文可以使用Web服务上下文进行检索.插入以下成员将导致JAX-WS将Web服务上下文的引用注入Web服务:

import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;

...

@Resource
private WebServiceContext context;

然后,您可以使用以下命令访问servlet上下文:

ServletContext servletContext =
    (ServletContext) context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);


如果你在JBoss EAP堆栈上尝试这个,并且首先使用JBoss Developer Studio中的New Project Wizard创建一个Seam项目,你最终会在WEB-INF/lib中包含一个commons-annotations.jar文件(包含其中包括@Resource注释).最终结果是您的WebServiceContext没有被填充,并且您得到NullPointerException.对我们来说,解决方案只是删除commons-annotations.jar,以确保使用包含JBoss的版本.在那之后,事情发生了变化.感谢您的回答,真正的救星!
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有