遇到 connection.start() 由于以下原因而失败的问题
java.net.ConnectException: Connection refused: connect
当我将 my 包裹javax.jms.TopicConnection
在 aThreadLocal
中时,如下所示:
private ThreadLocal<TopicConnection> createThreadLocalTopicConnection(final TopicConnectionFactory cf)
{
return new ThreadLocal<TopicConnection>() {
public TopicConnection result;
protected synchronized TopicConnection initialValue() {
try {
// Returns a javax.jms.TopicConnection object.
result = cf.createTopicConnection();
result.start();
return result;
} catch (JMSException e) {
throw new RuntimeException(e);
}
}
protected void finalize() throws Throwable {
if(result!=null) result.close();
}
};
}
如果我只是将其创建TopicConnection
为裸static
变量,则它可以毫无问题地连接。任何人都可以解释为什么它会作为一个裸变量工作,但是当包裹在 a 中时ThreadLocal
它会失败?谷歌这次让我非常失望。