`

在基于CXF的webservice中访问HttpServletRequest的方法

阅读更多

基于CXF开发webservice,想在webservice实现类中获得HttpServletRequest对象,用了几种方式,用@Resources标签或者@Context标签都不行。@Context标签下对象为null,@Resource标签虽然注入了org.apache.cxf.jaxws.context.WebServiceContextImplWebServiceContext 对象,但是该对象内部值为null,什么也取不到。

 

后面用了个笨办法,在web.xml中增加一个filter

 

	<filter>
		<filter-name>ContextServlet</filter-name>
		<filter-class>xxx.filter.ContextServlet</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>ContextServlet</filter-name>
		<url-pattern>/services/*</url-pattern>
	</filter-mapping>

 

 

在filter中访问HttpServletRequest,将需要获得的值保存在ThreadLocal中

 

public static ThreadLocal<String> path = new ThreadLocal<String>();
	@Override
	public void destroy() {
		path.remove();		
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		HttpServletRequest request=(HttpServletRequest)arg0; 		
		String path = request.getContextPath();
		basePath.set(path);
		arg2.doFilter(arg0, arg1);
	}

 

这样,在webservice的实现类中只要用 ContextServlet.path.get()就可以获得当前HttpServletRequest对中的变量。 

分享到:
评论

相关推荐

    基于CXF的webservice的发布及访问

    **基于CXF的Web服务发布及访问** 在Java开发中,Apache CXF是一个广泛使用的开源框架,用于构建和实现Web服务。本教程将详细介绍如何利用CXF发布基于SOAP 1.2的Web服务,以及如何进行客户端调用。首先,我们需要...

    webService(基于cxf)的完整例子

    在这个基于CXF的Web服务完整例子中,我们将深入探讨CXF的核心概念、配置、以及如何创建和调用Web服务。 1. **CXF框架介绍**:CXF,全称为"Code first eXtended Framework",最初由XFire项目发展而来,后与Apache ...

    CXF webservice+mybatis

    将CXF和Mybatis整合,可以创建一个基于Web服务的数据访问层。以下是整合步骤: 1. **创建服务接口**:定义一个Java接口,包含CRUD操作。 2. **创建服务实现**:实现该接口,并使用Mybatis的SqlSession执行SQL操作...

    CXF webservice 验证码接口

    使用jdk1.6、cxf2.3和tomcat开发的一个关于验证码的webservice接口,主要实现对手机验证码的验证。

    cxf WebService jar包(1)

    cxf WebService jar包

    CXF webservice Demo

    【CXF Webservice Demo】是基于Apache CXF框架的一个示例项目,用于演示如何使用CXF来创建和消费Web服务。Apache CXF是一个开源的Java框架,它允许开发者构建和集成Web服务,支持多种Web服务标准,如SOAP、RESTful ...

    cxf webservice demo

    3. **CXF_HELLO_ObjectSpringService**: 这个项目可能结合了CXF和Spring框架,展示了如何在Spring容器中配置和管理Web服务。Spring框架可以用来管理服务的生命周期,依赖注入,并提供事务管理等高级功能。 4. **CXF...

    mybatis+spring+cxf Webservice框架

    【描述】中提到的"mybatis+spring+cxf webservice服务 项目框架代码例子"意味着这个压缩包包含了一个实际的项目示例,供开发者学习和参考。它可能包含了从数据库操作到Web服务接口实现的完整流程,帮助开发者理解...

    CXF webService 工具类

    CXF工具类是CXF框架的一部分,提供了一系列方便实用的方法,帮助开发者在处理与Web服务相关的任务时提高效率。 1. **Web服务基础** - **SOAP(Simple Object Access Protocol)**:是一种基于XML的消息传递协议,...

    实战Web+Service+with+CXF webservice快速入门

    实战Web+Service+with+CXF webservice快速入门 webservice快速入门

    CXF WebService带有拦截器

    总结起来,"CXF WebService带有拦截器"的实践是Web服务开发中的一个重要方面,它允许我们在不侵入核心业务逻辑的情况下,增加诸如权限控制这样的安全特性。通过"AuthFilter_Service"和"AuthFilter_Client",我们可以...

    maven项目 cxf webservice

    这个项目对于初学者来说,是一个很好的实践案例,可以帮助他们理解如何在实际环境中集成Maven、CXF以及两种不同类型的数据库,同时也展示了如何使用Java来开发和部署Web服务。对于有经验的开发者,这样的项目可以...

    CXF webservice 示例工程(集成spring)

    在CXF Webservice中集成Spring,可以方便地管理服务组件,实现服务的生命周期管理。Spring容器负责初始化、配置和管理CXF服务,使得服务的创建和销毁更加便捷,同时也简化了代码的编写。 2. **集成WSS4J**: ...

    基于spring注解的cxf实现webservice

    在IT行业中,Web服务是应用程序之间进行通信的一种方式,而CXF是一个开源框架,它使得构建和消费Web服务变得更为简单。Spring框架以其强大的依赖注入和面向切面编程能力,与CXF结合可以提供一种优雅的方式实现Web...

    基于cxf 的webService 接口开发及调用步骤文档

    ### 基于CXF的WebService接口开发及调用步骤详解 #### 一、概述 在当前企业级应用开发中,服务化与微服务架构逐渐成为主流趋势,而WebService作为一种跨语言、跨平台的服务交互方式,在众多场景下仍然发挥着重要...

    基于CXF实现WebService开发.pdf

    在开发过程中,可以通过Maven项目管理工具来添加CXF依赖,方便地管理WebService项目所需的库文件。CXF支持多种数据绑定方式,如JAXB 2.0、XMLBeans、Castor等,同时也支持不同的消息格式如XML、JSON。 Web服务描述...

    使用cxf和spring开发基于https的webservice服务端以及客户端样例

    在服务端开发中,首先,我们需要在Spring配置文件中定义CXF的Servlet,指定其监听的URL和处理的WS-DSL文件。接着,创建一个接口定义Web服务的合同,然后实现这个接口。服务端的实现类可以被Spring管理,利用注解如`@...

    CXF WebService 所需要的最少的jar包

    在这个主题中,我们将深入探讨CXF WebService所需的最小jar包集合,以及如何利用这些库来开发Web服务。 首先,CXF的核心功能依赖于一系列的jar包,这些jar包包含了处理不同协议、数据绑定、WS-Security等关键组件的...

    C#动态调用CXF WEBSERVICE框架的共通类

    C#动态调用CXF WEBSERVICE框架共通类。

    基于CXF的webService本地数据交互----PC端与Android端(二)

    在提供的压缩包文件“cxf_webservice”中,可能包含以下内容: - 服务端代码:展示如何使用CXF创建和部署Web服务。 - 客户端代码:演示Android应用如何调用Web服务并处理返回的数据。 - WSDL文件:服务的接口定义,...

Global site tag (gtag.js) - Google Analytics