线程内的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 (将#修改为@)