为什么用到这个:
ssh集成了cxf,当登录系统后,发现系统报错,控制台不断输出下面信息:
2016-05-05 11:05:06 - [http-bio-8080-exec-4] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
2016-05-05 11:05:06 - [http-bio-8080-exec-9] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
2016-05-05 11:05:06 - [http-bio-8080-exec-6] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
2016-05-05 11:05:06 - [http-bio-8080-exec-10] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
2016-05-05 11:05:06 - [http-bio-8080-exec-5] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
2016-05-05 11:05:09 - [http-bio-8080-exec-9] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
2016-05-05 11:05:09 - [http-bio-8080-exec-4] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
2016-05-05 11:05:09 - [http-bio-8080-exec-5] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
2016-05-05 11:0
经查发现问题所在:
错误提示的内容即是:web.xml中有一个filter或者servlet不支持异步。
什么基于什么搞得 【活跃】敌杀死 2016/5/4 17:45:03 什么容器
【活跃】小伙 2016/5/4 17:45:42 tomcat 17:45:54 【活跃】敌杀死 2016/5/4 17:45:54 每个filter servlet 配置的时候要加上<asychronized> true</ asychronized> 【活跃】敌杀死 2016/5/4 17:46:26 普通的tomcat 还是alitomcat 【活跃】敌杀死 2016/5/4 17:47:28 <async-supported>true</async-supported> 【活跃】敌杀死 2016/5/4 17:47:40
【活跃】敌杀死 2016/5/4 17:47:44 要支持异步 17:57:27 【活跃】小伙 2016/5/4 17:57:27 普通的tomcat吧
【活跃】小伙 2016/5/4 17:57:35 alitomcat是啥啊
【活跃】小伙 2016/5/4 17:58:10 就是说我的web。xml中所有的servlet或者filter全都需要加进去吗 18:19:16 【活跃】敌杀死 2016/5/4 18:19:16 是的 【活跃】敌杀死 2016/5/4 18:19:30 阿里tomcat 19:44:11 【活跃】小伙 2016/5/4 19:44:11 @敌杀死 我那么做以后会有什么影响吗,对于项目来说 19:54:37 【活跃】小伙 2016/5/4 19:54:37 如果接口是集合类型的,例如list,好像有问题啊
【活跃】小伙 2016/5/4 19:54:47 用cxf生成的客户端 【活跃】敌杀死 2016/5/4 19:56:26 map也会有问题 19:57:10 【活跃】敌杀死 2016/5/4 19:57:10 那就约定好参数 开发规范 【活跃】敌杀死 2016/5/4 19:57:26 因为你的环境需要支持异步 【活跃】敌杀死 2016/5/4 19:57:41 servlet 3.0支持异步的特性
【活跃】小伙 2016/5/4 19:58:27 我那么改在web.XML中,不会对我们系统有啥影响吗 19:58:41 【活跃】敌杀死 2016/5/4 19:58:41 不会 【活跃】敌杀死 2016/5/4 19:59:07 只是以后你要继承其他开源框架,其他开源框架不支持的话就麻烦了 【活跃】敌杀死 2016/5/4 19:59:40 是链式调用,一个servlet或者filter不支持异步就会报错 【活跃】敌杀死 2016/5/4 20:00:12 你是哪个框架需要支持异步的特性呢 【活跃】敌杀死 2016/5/4 20:00:17 cxf?
【活跃】小伙 2016/5/4 20:00:27 ssh需要吧 【活跃】敌杀死 2016/5/4 20:00:31 cxf不会这样啊
【活跃】小伙 2016/5/4 20:00:41 我把cxf集成到ssh中了
20:02:02 【活跃】敌杀死 2016/5/4 20:02:02 应该有其他解决方案 【活跃】敌杀死 2016/5/4 20:02:15 框架本身应该有方案处理
【活跃】小伙 2016/5/4 20:03:14
【活跃】小伙 2016/5/4 20:03:24 我只修改了俩个地方啊
【活跃】小伙 2016/5/4 20:03:29 一个web。xml
【活跃】小伙 2016/5/4 20:03:38 还有一个struts.xml
【活跃】小伙 2016/5/4 20:04:01 struts.xml把我的webservice地址放行了 20:04:42 【活跃】敌杀死 2016/5/4 20:04:42 cxf本身不需要一定是异步的啊
【活跃】小伙 2016/5/4 20:04:56 启动时并不会报那个错,但是只要登录到我们系统就会报这个错。而且是一直弹出来
【活跃】小伙 2016/5/4 20:05:17 是不需要啊
【活跃】小伙 2016/5/4 20:05:33 启动服务的时候,我就发布了 【活跃】敌杀死 2016/5/4 20:05:37 一直弹就对了 【活跃】敌杀死 2016/5/4 20:05:45 没支持异步,所以走同步了 【活跃】敌杀死 2016/5/4 20:05:52 同步就是不停的刷的
【活跃】小伙 2016/5/4 20:06:10 就是说,我那个cxf不支持同步了吗
【活跃】小伙 2016/5/4 20:06:20 异步 【活跃】敌杀死 2016/5/4 20:06:26 支持同步 【活跃】敌杀死 2016/5/4 20:06:35 你调用的时候还是可以调用的 【活跃】敌杀死 2016/5/4 20:06:42 只是会不停的请求 20:06:48 【活跃】小伙 2016/5/4 20:06:48 即访问了系统,也有人在调用这个接口,就会出现
【活跃】小伙 2016/5/4 20:06:54 我明白你的意识了 【活跃】敌杀死 2016/5/4 20:06:54 调用还是能正常调用的 【活跃】敌杀死 2016/5/4 20:07:08 你现在调用能通的吧
【活跃】小伙 2016/5/4 20:07:14 对。系统还可以正常运行。调用也可以
【活跃】小伙 2016/5/4 20:07:25 没什么影响,就是控制台一直刷 【活跃】敌杀死 2016/5/4 20:07:26 就是这个现象 【活跃】敌杀死 2016/5/4 20:07:45 没影响也不是 【活跃】敌杀死 2016/5/4 20:07:52 看日志没法看了 【活跃】敌杀死 2016/5/4 20:08:04 调试也没法调了 【活跃】敌杀死 2016/5/4 20:08:13 只是功能正常
【活跃】小伙 2016/5/4 20:08:23
【活跃】小伙 2016/5/4 20:08:26 对头
【活跃】小伙 2016/5/4 20:08:36 就你那一种解决方式吗 20:09:03 【活跃】敌杀死 2016/5/4 20:09:03 支持异步就行了 【活跃】敌杀死 2016/5/4 20:09:24 但是我不知道你是哪个地方导致的
【活跃】小伙 2016/5/4 20:09:58 是不是cxfservlet不支持啊
【活跃】小伙 2016/5/4 20:10:24 我们系统里面有很多异步方式
【活跃】小伙 2016/5/4 20:10:32 前后台交互的时候 【活跃】敌杀死 2016/5/4 20:10:41 我是cometd需要servlet3.0异步支持 【活跃】敌杀死 2016/5/4 20:10:59 cxf本身应该不需要 20:11:12 【活跃】小伙 2016/5/4 20:11:12 cometd是啥啊 【活跃】敌杀死 2016/5/4 20:11:23 你可以百度下
【活跃】小伙 2016/5/4 20:12:24 大概明白啥意识了
【活跃】小伙 2016/5/4 20:12:41 就是我的web.xml中有不支持异步调用的
【活跃】小伙 2016/5/4 20:13:12 我们以前有个系统是通过xfire发布的接口,并没有这个现象啊 20:13:41 【活跃】小伙 2016/5/4 20:13:41 但是没有集成到开源框架中,而是原声发布的 【活跃】敌杀死 2016/5/4 20:13:56 那不清楚,你可以单独整个cxf环境看下 20:16:53 【活跃】小伙 2016/5/4 20:16:53 其实我只要找到那个不支持异步调用的,加上你给的配置,就可以了 【活跃】敌杀死 2016/5/4 20:17:20 每个都加上就可以了
【活跃】小伙 2016/5/4 20:18:15 会不会全都变成同步了 【活跃】敌杀死 2016/5/4 20:19:09 不会,链式调用就是中间断了的那个不知道就不走 了 【活跃】敌杀死 2016/5/4 20:19:31 就会说某个servlet不支持异步 【活跃】敌杀死 2016/5/4 20:19:42 你看下错误信息或许能找到 20:21:59 【活跃】小伙 2016/5/4 20:21:59 我们发布的接口,里面写了hibernate
【活跃】小伙 2016/5/4 20:22:28 那个就是你说的链式调用
【活跃】小伙 2016/5/4 20:23:03 没有错误信息
【活跃】小伙 2016/5/4 20:23:09 只有2016-05-04 17:38:44 - [http-bio-8080-exec-9] - WARN - ExceptionHandler:38 - Error: java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations. 【活跃】敌杀死 2016/5/4 20:23:36 那是你还有错误日志没打出来 【活跃】敌杀死 2016/5/4 20:23:42 没打印在控制台 【活跃】敌杀死 2016/5/4 20:23:51 你hibernate的日志有看到吗
【活跃】小伙 2016/5/4 20:25:24 没看啊
【活跃】小伙 2016/5/4 20:25:30 已经下班了
【活跃】小伙 2016/5/4 20:25:36 明天去的时候看看 【活跃】敌杀死 2016/5/4 20:25:40 哦 88
【活跃】小伙 2016/5/4 20:26:06 我是下班回家,找找解决方案
【活跃】小伙 2016/5/4 20:27:10 cxf不是传说中很好的支持List《T》类型的返回值吗
经上面聊天看以知道:servlet3.0以前不支持异步。而我们项目现在用的是2.4
这样就出现了标题所说的问题,解决方式如下:
http://blog.csdn.net/zxz547388910/article/details/50780068