為什么用到這個:
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