strtus2 + spring + CXF 实现能访问action的同时还能调用spring发布的Webservice
来源:互联网 发布:大逃杀类游戏知乎 编辑:程序博客网 时间:2024/06/04 12:02
【背景介绍】
目前正在开发一个小工具,需要采用CXF结合Spring发布Webservice提供给外部应用访问,当然java开发是离不开struts2这样的控制器的,
所以这样就会存在一个问题了,如果我们简单的将CXF,spring,struts的相关配置,在web.xml配置好,而不继承struts的filter将webservice请求单独拿出来
处理,就会导致struts会将我们的webservice请求当做action请求一样来处理,而我们又没有在struts的配置文件中配置webservice请求的action,这样我们调用webservice的时候,就会提示我们没有相对应的action配置。
【解决方案】
1、新建一个类继承struts的filter,用来将webservice和action分开来处理:
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
public class StrutsInitPrepareAndExecuteFilter extends StrutsPrepareAndExecuteFilter
{
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
try {
HttpServletRequest request = (HttpServletRequest) req;
// 判断是否是向WebService发出的请求
if (request.getRequestURI().contains("/CXFService")) {
// 如果是来自向CXFService发出的请求
chain.doFilter(req, res);
} else {
// 默认action请求
super.doFilter(req, res, chain);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
2、在web.xml中将新建的类配置为struts的入口filter:
<filter><filter-name>struts2</filter-name>
<filter-class>StrutsInitPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- strtus2 + spring + CXF 实现能访问action的同时还能调用spring发布的Webservice
- CXF+Spring发布WebService 以及 对WebService的调用
- cxf+spring发布webservice接口及接口的调用
- cxf+spring发布webservice接口及接口的调用
- spring整合cxf方式发布的rest webservice,调用接口
- cxf+spring发布webservice接口及接口的调用
- cxf+spring发布webservice接口及接口的调用
- spring中发布基于cxf的webservice
- webservice 基于spring的cxf发布
- cxf+spring发布webservice和调用
- cxf+spring发布webservice和调用
- cxf+spring发布webservice
- cxf+spring发布webservice
- spring +cxf 发布webservice
- spring+cxf发布webservice
- CXF+Spring发布webservice
- 【webservice】CXF结合spring发布简单的webservice服务
- CXF实现和Spring整合发布WebService
- hdoj 2089 不要62! (打表法)
- HDU 3008 Warcraft (DP)
- linux:Tuning Linux IPv4 route cache
- 20个设计模式和软件设计面试问题
- SnagIt 12.0汉化版和安装使用教程(SnagIt 12 key)
- strtus2 + spring + CXF 实现能访问action的同时还能调用spring发布的Webservice
- 阿斯达四大四大
- hdoj acm steps1.2.5(IBM Minus One)
- ssh整合系列博客——(3)在jsp中如何使用spring管理的bean
- 《iOS开发完全上手——使用iOS 7和Xcode 5开发移动与平板应用》之Objective-C新手训练营
- 黑马程序员 【】java学习之路——单例设计模式简介
- FAST_START_MTTR_TARGET参数的理解
- docker 部署nginx+weblogic集群
- SQL Server2008优化之SET STATISTICS开关