• web.xml配置文件中<async-supported>true</async-supported>报错的解决方案


    为什么用到这个:

    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

  • 相关阅读:
    ref与out的区别(C#)
    用MS SQL Server 2008修改数据库表时提示“不允许保存更改”的解决方法
    测试的职责
    性能测试新手误区(三):用户数与压力
    JAVA + LR实现apache流媒体的性能测试(LR部分)
    性能测试新手误区(二):为什么我模拟的百万测试数据是无效的
    JAVA + LR实现apache流媒体的性能测试(JAVA部分)
    性能测试新手误区(六):性能监控
    性能测试新手误区(五):这是性能问题么
    性能测试新手误区(四):一切来自录制
  • 原文地址:https://www.cnblogs.com/beijingstruggle/p/5461117.html
Copyright © 2020-2023  润新知