试试下面的方法,实现ExceptionListener接口
...................
private static TopicConnection subConnection = null;
....................
class MsgListenerClass implements MessageListener,ExceptionListener
{
public void onMessage(Message message)
{
.............
}
public void onException(JMSException jmse)
{
System.out.println("斷線");
reConnection();
System.out.println("重新連線");
try
{
this.subConnection.setExceptionListener(this);
}
catch(JMSException jmsee)
{
jmsee.printStackTrace();
}
}}
...................
private static TopicConnection subConnection = null;
....................
class MsgListenerClass implements MessageListener,ExceptionListener
{
public void onMessage(Message message)
{
.............
}
public void onException(JMSException jmse)
{
System.out.println("斷線");
reConnection();
System.out.println("重新連線");
try
{
this.subConnection.setExceptionListener(this);
}
catch(JMSException jmsee)
{
jmsee.printStackTrace();
}
}}
解决方案 »
- ssh框架中如何从用户去分配角色
- NetBeans开发web services出错
- XP系统,学习tomcat时,IIS安装问题
- 编译出错com.sun.ssl...无法解析,jsse我已经添加了,大侠看看
- The value for the useBean class attribute lyb.jdbc is invalid.怎么解决啊!郁闷啊!好几天了!
- 为什么一个类加上MAIN时执行能得到结果,但去了MAIN变成普通类时,其它类调用不行
- 什么意思?
- 在线急,一个java小问题,请拿分
- J2EE/WebSphere的同仁们都留下qq吧,方便交流!
- 请大家提供些j2ee的学习资料
- 求助 [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 怎么办?
- 关于工作流和报表的问题
reConnection();
:)
别忘了给分。
祝工作愉快
在main方法中创建连接,后加上
this.conn.setExceptionListener(listener);
在class MsgListenerClass 中写方法reConnection(); 来重新连接。思路大概是这样的,你可以试试....
正如:http://www.chinaitlab.com/www/news/article_show.asp?id=31607
所说:
问. 用 Connection.setExceptionListener(ExceptionListener) 方法去尝试处理连接问题,但是当停止服务器的时候, 好像没有 JMSException 被触发;而且onException 方法也没被调用。这是一个 bug 吗?
答: JMS 规范并没有指定传送给 ExceptionListener 的究竟是何异常,以及它们是何时被传送的,因此提供者们在如何处理连接问题上是多种多样的。这方面如果有问题的话,请与您的 JMS 提供者协商。谢谢dragon525(),有时间继续讨论!
--------------------------------------------------------------------------
JMS 规范并没有指定传送给 ExceptionListener 的究竟是何异常,以及它们是何时被传送的,因此提供者们在如何处理连接问题上是多种多样的