activemq.ConnectionFailedException: The JMS connection has failed: java.io.EOFException

消息中间件JMS异常EOFException

异常场景

在 ssm+dubbo分布式项目时,使用消息中间件时,在运行时出现了这个错误.

异常信息

Caused by: org.apache.activemq.ConnectionFailedException: The JMS connection has failed: java.io.EOFException
	at org.apache.activemq.ActiveMQConnection.checkClosedOrFailed(ActiveMQConnection.java:1448)
	at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:328)
	at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.jms.connection.SingleConnectionFactory$SharedConnectionInvocationHandler.invoke(SingleConnectionFactory.java:620)
	at com.sun.proxy.$Proxy50.createSession(Unknown Source)
	at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:192)
	at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:475)
	... 73 more
Caused by: java.io.EOFException
	at java.io.DataInputStream.readInt(DataInputStream.java:392)
	at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:268)
	at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:240)
	at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:232)
	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)
	... 1 more

分析过程

在最初的时候,我以为是因为点对点模式下导致不能正常读取导致的.后来发现在发布订阅模式下也会出现这个异常.

经过在网上查找一些相关资料. 但对于这个异常,网上似乎并没有太多的可行解决方案.

其实很多人都会在运行时遇到EOFException,但是这个异常不是必须声明的,同时也说明是正常运行结束的标记.

为什么这么说呢?

EOF表示读到了文件尾( String str = dis.readUTF(); ,客户端已经断开,后面已经没有内容可以读了),发送结束自然连接也就断开了。

解决方案

  1. 检查一下客户端是否断开,不能正常读取到数据;
  2. 打个断点调试一下,读取的数据是否有异常,根据断点提示的数据和数据库的数据做对比.
  3. 重新启动一下客户端和服务.

这是本人遇到的异常和解决方案.原因是断开了连接导致读取数据有异常.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值