webservice发布地址和项目冲突问题(url拦截冲突)
来源:互联网 发布:python读html文件 编辑:程序博客网 时间:2024/06/05 10:00
在web项目中开发webservice接口在发布的时候会遇到url冲突问题,即每个web项目无论使用的是struts或者spring mvc都会有一个地址拦截器,并且拦截的地址一般都会配置成/*,这样就会把所有的请求都会拦截,然后作为一个action或者controller处理。这种情况就导致我们在访问webservice发布的url时也会被拦截,并且提示没有这个action或者controller。(这个报错还是很对的,我们项目中确实没有)
我们想要的效果只是通过web项目发布webservice,并不想然web项目处理这个地址,所以必须不让web拦截这个url。我目前知道的有两种方式实现,一种是重写过滤器,还有一种是配置不拦截的url。我使用的重写过滤器,至于配置不拦截的url并不确定是否一定可行
配置拦截器:
spring mvc:
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/*" /> <mvc:exclude-mapping path="/webservice/*" /> <bean class="com.itcast.oa.interceptor.MyInterceptor" /> </mvc:interceptor> </mvc:interceptors>
struts:在struts.xml配置文件中添加
<constant name="struts.action.excludePattern" value="/webservice"></constant>
以上通过配置文件的方式,我没有试过,正确与否并不能保证,重写filter已经实现
可以使用。以spring mvc为例,struts相同
public class DispaDispatcherForWebserviceServlet extends DispatcherServlet{@Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throw IOException, ServletException{HttpServletRequest request = (HttpServletReqeust) req;String requestUrl = reqeust.getRequestURI();/* * 如果是指定的url放过,走下一个过滤器 * 不是:按照原来的流程处理 */if(reqeustUrl.contains("/webservice")){chain.doFilter(req, res);}else{super.doFilter(req, res, chain);}}}web.xml配置
<servlet><servlet-name>springMvc</servlet-name><servlet-class>com.xu.servlet.DispaDispatcherForWebserviceServlet</servlet-class></servlet><servlet-mapping><servlet-name>springMvc</servlet-name><url-pattern>/*</url-pattern></servlet-mapping>这样就解决webservice发布地址冲突的问题了。
阅读全文
0 0
- webservice发布地址和项目冲突问题(url拦截冲突)
- 项目引入冲突问题
- DHCP和IP地址冲突
- Spring Boot结合cxf发布WebService接口jar包冲突的问题
- project解决项目冲突问题
- url里锚点和input控件冲突
- IP地址冲突问题的解决方法
- 如何解决IP地址冲突问题
- IP地址冲突问题的解决方法
- IP地址冲突问题的解决方法
- 解决IP地址冲突的问题
- IP地址冲突问题的解决方法
- jquery和prototype冲突问题
- Jquery和prototype冲突问题
- json 和struts 冲突问题
- ACE_Thread_Manager和WinMain冲突问题
- Jquery和Javascript冲突问题
- listview 和scrollview冲突问题
- 独立封装简单mvc框架(1)
- openresty程序开发(Nginx+Lua)
- VC6.0编译时出现:error C2660: 'VarCmp' : function does not take 4 parameters
- 标准I/O:分别用fgetc与fputc,fgets与fputs统计文件的行数
- 称不上项目的小程序2:停车场
- webservice发布地址和项目冲突问题(url拦截冲突)
- 为什么这个函数的返回值是-1, 浪费我10-20分钟? ------小心宏中return
- c++ vector用法
- android 怎么将activity 退出的动画效果关闭
- 百度地图多点聚合(标注与信息窗口)最佳视野
- JS编程-寻找字符串中出现最多的字符以及重复次数
- 2017/8/5训练日记(最短路径算法之Dijkstra算法和Bellman-Ford算法)
- 事务管理之事务的基本概念总览
- HDUOJ {A}+{B}