我想通过将servlet存储为servlet上下文属性来共享我的servlet和我的webservice(JAX-WS)之间的对象。但是,我如何从Web服务中检索servlet上下文?如何从JAX-WS Web服务中访问ServletContext?
37
A
回答
40
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);
0
如果使用Maven添加这个依赖项!!!
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
所以我解决了避免冲突错误GET ServletContext的 INFO :
,并在类的方法我用
@WebService(endpointInterface = "choice.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
@Resource
private WebServiceContext context;
public String sayHi(String text) {
HttpServletRequest request =(HttpServletRequest) context.getMessageContext().get(MessageContext.SERVLET_REQUEST);
System.out.println(request.getContextPath());
相关问题
- 1. 如何从PowerShell中访问Web服务?
- 2. 如何从ASP.Net访问PHP Web服务?
- 3. 从PushStrategy访问ServletContext
- 4. 从CQRS访问Web服务
- 5. 从Web服务访问FacesContext
- 6. 从GWT访问Web服务
- 7. 从集成测试中的服务访问servletContext
- 8. 访问Web服务
- 9. 从Windows Web服务访问Web API
- 10. 如何从服务器外部成功访问Web服务?
- 11. 访问从JS的ServletContext
- 12. 访问asp.net web服务
- 13. 访问Web服务 - 跨域
- 14. 如何访问SOAP Web服务的Android
- 15. 访问SQL Report Web服务
- 16. jaxws web服务。更改节点结构
- 17. 从web服务客户端访问java web服务
- 18. 如何获取其余Web服务中的ServletContext
- 19. 如何访问resources.groovy中Grails 3的ServletContext?
- 20. 拒绝访问Web服务
- 21. 如何从Web应用程序访问内存中的服务?
- 22. 如何从JAX-WS Web服务中访问ApplicationContext?
- 23. 如何从asp.net中的web服务访问网页控件?
- 24. Silverlight的Web服务访问
- 25. 拒绝Web服务访问
- 26. 统一访问Web服务
- 27. 访问virtualbox web服务
- 28. 访问SharePoint2007 Web服务
- 29. 从Web服务访问文件
- 30. 访问asp.net web api http服务从android
如果你想这在JBoss EAP栈上,你开始通过使用JBoss Developer Studio中的新建项目向导创建一个Seam项目,最终在WEB-INF/lib中包含commons-annotations.jar文件(其中包含@Resource注释)。最终的结果是你的WebServiceContext没有被填充,并且你得到一个NullPointerException。对我们来说,解决方案只是删除commons-annotations.jar,以确保使用了包含JBoss的版本。之后,事情就顺利进行了。感谢伟大的答案,一个真正的救星! – 2010-09-24 17:15:58