別のマシン上の JBoss 7.1 サーバーの JMS トピックにログを記録するアプリケーションがあります (アプリケーション コード -> slf4j -> JDK ロギング -> JMS トピック)。ロギングは JBoss 6 では機能しますが、JBoss 7.1 では機能しません。代わりに、JNDI を使用して JMS トピックを検索しているときに、次の例外が発生します。
javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: Operation failed with status WAITING]
at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36)
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:121)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at ...<JMS/JNDI util classes>...
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at java.util.logging.LogManager$7.run(LogManager.java:919)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.initializeGlobalHandlers(LogManager.java:911)
at java.util.logging.LogManager.access$900(LogManager.java:129)
at java.util.logging.LogManager$RootLogger.getHandlers(LogManager.java:1018)
at java.util.logging.Logger.log(Logger.java:454)
at org.slf4j.impl.JDK14LoggerAdapter.log(JDK14LoggerAdapter.java:588)
at org.slf4j.impl.JDK14LoggerAdapter.info(JDK14LoggerAdapter.java:285)
at my.application.main(Unknown Source)
Caused by: java.lang.RuntimeException: Operation failed with status WAITING
at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:89)
at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:56)
at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateCachedNamingStore(InitialContextFactory.java:166)
at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateNamingStore(InitialContextFactory.java:139)
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:104)
... 26 more
アプリケーションの他の場所では、同じクラスと JNDI プロパティを使用して JMS トピックを検索しています。また、netcat は JBoss サーバーのリモート ネーミング ポート (4447) に接続できます。
なぜこれがうまくいかないのですか?
編集:これが InitialContext を作成する私のコードです
final Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "remote://192.168.xxx.xxx:4447");
props.put("java.naming.security.principal", "remote");
props.put("java.naming.security.credentials", "remotepwd");
InitialContext initialContext = new InitialContext(props);
編集: 起動スクリプトの呼び出し:
bin/standalone.sh -Djboss.bind.address=192.168.xxx.xxx -Djboss.bind.address.management=192.168.xxx.xxx -Djboss.bind.address.unsecure=192.168.xxx.xxx --server-config =standalone-full.xml -b=192.168.xxx.xxx -bmanagement=192.168.xxx.xxx