java - 线程内的 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 个罐子,竞争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);
}
never的输出getLogger().debug("END trying context")
,我也没有看到getLogger().debug("Catch")
。所以看来我真的“卡在”里面了lookup()
。我不能更进一步,它不会抛出异常。
解决方案
推荐阅读
- java - 迁移带有 JBoss EAP 6.3 Standalone + Apache for Wildfly 15 Domain + Apache 和 modcluster 的系统的问题
- javascript - 为什么 Array.map() 方法返回 arr[index+1].length 为未定义?
- java - Spring WebMVC 视图解析器无法映射页面
- php - 关于差异参数 $_GET['id'] 和 $id
- android - 在 InstantApps 类中找不到 showInstallPrompt
- python - 为什么绘制矩形不显示在屏幕上?
- eloquent - 如何使用数据透视表获取多对多关系数据
- r - shinyapps.io:来自 API 的数据(read_lines())
- pyqt5 - 在 pyqt5 中,当我单击“确定”按钮时,有没有办法用我刷新的底图替换图形画布?
- mysql - 为什么在创建 CURSOR 时报告缺少该字段?