热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

websocket出现Theasyncsupportisdisabledonthisrequest:weblogic.servlet.internal.ServletRequest

Websocket部署weblogic出现问题提示:在本地tomcat中可以正常发送消息例如:在服务器上weblogic中发布项目后,出

Websocket 部署 weblogic 出现问题

提示:在本地tomcat中可以正常发送消息
例如:在服务器上weblogic中发布项目后,出现以下问题

WebSocket connection to 'ws://IP:8000/app/ws?token=a507f7d60a2743f5954ff7d03e49bbe3' failed: Invalid frame header
initWebSocket @ 6.45a48267c40b95452e12.js:1



文章目录

  • Websocket 部署 weblogic 出现问题
  • 项目背景
  • 一、环境
  • 二、问题
    • 1.前端
    • 2.websocket错误码 1006
    • 3.weblogic 中错误
  • 解决
  • 最后可以正常接收数据:




项目背景

公司项目前端页面中需要新增一个消息通知功能,技术点:采用websocket来实现此功能




一、环境

开发环境:采用的是 idea + tomcat
测试环境:weblogic发布项目


二、问题


1.前端


前端报错如下:


WebSocket connection to 'ws://ip:8000/app/ws?token=a507f7d60a2743f5954ff7d03e49bbe3' failed: Invalid frame header
initWebSocket @ 6.45a48267c40b95452e12.js:1

2.websocket错误码 1006

图片如下:
在这里插入图片描述


3.weblogic 中错误

The async-support is disabled on this request: weblogic.servlet.internal.ServletRequestImpl@5465779



解决

调试时发现报错出在WebLogicRequestUpgradeStrategy类里的handleSuccess(servletRequest, servletResponse, upgradeInfo, upgradeResponse)函数。AsyncContext asyncContext = request.startAsync()这一步是false。

## 解决办法是在web.xml里添加
<async-supported>true</async-supported>

// servlet 处
<servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup><async-supported>true</async-supported></servlet>

// filter 中&#xff08;所有的filter&#xff09;<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><async-supported>true</async-supported></filter>...

最后可以正常接收数据&#xff1a;

在这里插入图片描述


推荐阅读
author-avatar
拐久了_618
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有