当前位置: 首页 > 知识库问答 >
问题:

Java WebSockets:远程endpoint处于状态[TEXT_FULL_WRITING]

赖明煦
2023-03-14
synchronized (session) {
    if (session.isOpen()) {
        session.getBasicRemote().sendText(message);
    }
}
java.lang.IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.checkState(WsRemoteEndpointImplBase.java:1015)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.textStart(WsRemoteEndpointImplBase.java:978)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:161)
at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37)

任何回答都是高度赞赏的!提前谢了。

更新3/11/2014:我用Jetty 9.1测试了我的应用程序,没有出现此异常。我假设这是Tomcat实现的bug。

共有1个答案

孙泉
2023-03-14

好吧,这不是Tomcat的问题,而是我的错。

我的onMessage函数返回了一个字符串,这意味着我回显了消息。结果,这部分代码没有同步。

坏:

@OnMessage
public String onMessage(String message, Session session) {
   ...
   return message;
}
@OnMessage
public void onMessage(String message, Session session) {
   ...
}
 类似资料:
  • 问题内容: 从MDN for NodeList: 在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中。例如,Node.childNodes处于活动状态: 在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容。document.querySelectorAll返回一个静态NodeList。 所以....有点烦!是否有任何关于哪些

  • 再次,我很困惑...我相信我的问题有一个简单的答案。 我的问题是;我如何告诉Hibernate MySQL包含中值函数,而不是返回错误? [IllegalStateException:没有节点的数据类型:org.hibernate.hql.internal.ast.tree.MethodNode-[METHOD_CALL]MethodNode:'('-[METHOD_NAME]IdentNode:

  • 地址 address_id INT PK AutoIncr 城市Varchar 国家varchar 员工 null

  • 我们在其中一个模块中使用了Hystrix-断路器模式[library]。usecase是:-我们正在从kafka轮询16个消息,并使用pararllel流处理它们,因此,对于工作流中的每条消息,它需要3个rest调用,这些调用由hystric命令保护。现在,问题是当我尝试运行单个实例时,CPU显示尖峰,线程转储显示许多线程处于等待状态,等待所有3个命令。如下所示:-

  • 用例:每次我需要处理一个作业时创建一个新线程。 目前的实现:我使用的执行器服务与固定大小的线程池,例如50。对于每个作业,我都向executor服务提交一个新线程。 我试图实现的行为更像是自动伸缩。在高峰时间跨越更多的服务器(在本例中是线程)。并在负载不是很高的时候终止额外的服务器并保持最小的服务器计数。

  • 问题内容: 作为升级JRun的一部分,我们正在从1.4 JVM迁移到1.6 JVM。现在,我收到一个非常奇怪的oracle db错误:“ OALL8处于不一致状态”。我已经解决了插入根本不使用绑定变量的查询的问题- 所有内联参数。如果我在没有任何绑定变量的情况下运行查询,则会收到上述错误。一旦我用绑定变量替换了一个硬编码值,一切都会正常工作。 另一个奇怪的地方是,在执行查询之后,它实际上已提交给数