NamingException при попытке RMI / HTTP от JBoss 4.0.1 до 4.2.3 - PullRequest
0 голосов
/ 12 февраля 2009

У меня есть приложение, которое пытается вызвать метод в EJB, работающем на JBoss 4.2.3 GA.

Приложение является устаревшим приложением; он работает, когда он обращается к исходному серверу, который работал на JBoss 4.0.1. Его код RMI находится в jbossall-client.jar из JBoss 4.0.1. Он пытается вызвать метод, который даст ему новый код, который позволит ему обновляться. Так что я должен заставить его работать как есть; единственные изменения, которые я могу сделать, находятся на стороне сервера. В худшем случае мне может потребоваться настроить сервер JBoss 4.0.1, который может обрабатывать эти запросы из более старых версий.

А пока я хотел бы понять, почему он выходит из строя, и если я могу что-то сделать, чтобы это исправить.

В данный момент происходит сбой в новом 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

1 Ответ

0 голосов
/ 01 марта 2009

Исключением является использование функции, которая не документирована вне исходного кода (по крайней мере, насколько мне удалось найти). Здесь InvokerURL указывается в качестве системного свойства, которое разрешается на стороне клиента (эта функция полезна, если сервер JBoss находится внутри NAT).

Когда клиент не имеет свойства, определенного в его системных свойствах, он выдает NPE вместо сообщения о проблеме с InvokerURL, которую он получил.

...