NamingExceptionの4.2.3へのJBoss 4.0.1からRMI / HTTPをしようとしたとき
質問
私は、JBoss 4.2.3 GA上で実行されているEJBのメソッドを呼び出すようにしようとしているアプリケーションを持っています。
アプリケーションは、レガシーアプリです。それは、JBoss 4.0.1に走った元のサーバにアクセスしたときにそれが動作します。そのRMIコードは、JBoss 4.0.1からjbossall-client.jarのです。自分自身を更新できるようにするためにそれを新しいコードを与える方法を呼び出そうとしています。だから私はそれがあるとして働いて取得するんです。私が作ることができる唯一の変更は、サーバー側です。最悪の場合、私は、以前のバージョンからのこれらの要求を処理することができます4.0.1 JBossサーバをセットアップする必要がある場合があります。
しかし一方で、私はそれが失敗していると何があるかどうか、私はそれを修正するために行うことができます理由を理解したいと思います。
今、それは新しいのInitialContextに失敗しました()。
このスタックトレースです:
javax.naming.NamingException: Failed to retrieve Naming interface [Root exception is java.lang.NullPointerException]
at org.jboss.naming.HttpNamingContextFactory.getInitialContext(HttpNamingContextFactory.java:69)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at Main.main
Caused by: java.lang.NullPointerException
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1820)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at org.jboss.proxy.ClientContainer.readExternal(ClientContainer.java:148)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1755)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1717)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at org.jboss.invocation.MarshalledValue.get(MarshalledValue.java:78)
at org.jboss.naming.HttpNamingContextFactory.getNamingServer(HttpNamingContextFactory.java:123)
at org.jboss.naming.HttpNamingContextFactory.getInitialContext(HttpNamingContextFactory.java:65)
... 17 more
解決
の例外は、ソースコードの外に文書化された機能を使用してから来ました(少なくとも私の知る限りを見つけることができましたとおり)。 InvokerURLは(JBossサーバがNATの内側にある場合に機能が便利です)、クライアント側で解決されるシステムプロパティとして指定されている場所です。
クライアントは、そのシステムのプロパティで定義されたプロパティを持っていない場合は、、それが受信したInvokerURLの問題を報告するのではなく、NPEをスローします。
所属していません StackOverflow