如何解决线程内的JMS查找失败
我让我的客户端尝试查找JMS服务器。这是我的课程JmsTest.java
:
public static void main(String[] aInArgs)
{
boolean bContinue = true;
try
{
// determine JmsTest configuration based on command line arguments.
JmsTest jmsTest = parseCommandLine(aInArgs);
// connect to the server.
//jmsTest.initializeConnection();
Thread jmsFaultClientThread = null;
jmsFaultClientThread = new Thread("RUN") {
@Override
public void run() {
try
{
System.out.println("jmsFaultClient starting...");
jmsTest.initializeConnection();
}
catch (Exception e)
{
System.out.println("Exception: " + e.toString());
}
System.out.println("jmsFaultClient started.");
}
};
jmsFaultClientThread.start();
还有我的方法initializeConnection()
:
public void initializeConnection() throws Exception
{
try
{
Hashtable env = new Hashtable();
env.put(Context.Security_PRINCIPAL,user );
env.put(Context.Security_CREDENTIALS,password);
jndiContext = new InitialContext(env);
System.out.println("Initializing Topic (" + strName + ")...");
try
{
topicConnectionFactory = (TopicConnectionFactory) jndiContext.lookup(CONNECTION_FACTORY);
}
catch (Exception e)
{
topicConnectionFactory = getExternalFactory(jndiContext);
}
当我像这样运行jmsTest.initializeConnection()
时,一切正常,并且查找正常。但是,问题在于,当它在线程内运行时,它会卡住而没有任何异常或任何错误。只是卡住了。
在我的日志中,我看到:
System.out.println("Initializing Topic (" + strName + ")...");
哪个是我的try / catch里面的日志,什么都没有。
在依赖项中,我有2个jar,其中包含 javax \ jms 。对于第一个,它可以在线程内部工作,而对于第二个则可以。但是我不知道为什么我的jar可以“阻塞”线程。
更新1:
@AnotherJavaprogrammer说我要打印错误:
这是我对print的查找:
try
{
getLogger().debug("TRY context");
Context lInitialContext = (Context) jndiContext.lookup(JMS_CONTEXT);
lInitialContext.lookup("SAMConnectionFactory");
getLogger().debug("END trying context");
}
catch (Exception e)
{
getLogger().debug("Catch");
getLogger().debug("Exception",e);
}
getLogger().debug("END trying context")
的输出永远不会到来,我也看不到getLogger().debug("Catch")
的输出。看来我真的被lookup()
塞住了。我不能再走了,它也不会抛出异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。