2009-02-12 4 views
0

J'ai une application qui essaie d'appeler une méthode sur un EJB fonctionnant sous JBoss 4.2.3 GA.NamingException lors de l'essai de RMI/HTTP de JBoss 4.0.1 à 4.2.3

L'application est une application héritée; Cela fonctionne quand il accède au serveur d'origine qui a fonctionné sur JBoss 4.0.1. Son code RMI est dans jbossall-client.jar de JBoss 4.0.1. Il essaie d'appeler une méthode qui lui donnera un nouveau code pour lui permettre de se mettre à jour. Donc je dois le faire fonctionner tel quel; les seuls changements que je peux faire sont du côté du serveur. Au pire, je pourrais avoir à installer un serveur JBoss 4.0.1 capable de traiter ces requêtes à partir de versions plus anciennes. En attendant, je voudrais comprendre pourquoi il échoue et s'il y a quelque chose que je peux faire pour le réparer.

Actuellement, il échoue dans le nouveau InitialContext().

C'est la trace de la pile:

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 

Répondre

0

L'exception est venu d'utiliser une fonction qui est en situation irrégulière en dehors du code source (au moins autant que je suis en mesure de trouver). C'est ici qu'un InvokerURL est spécifié en tant que propriété système résolue du côté client (cette fonctionnalité est utile si le serveur JBoss se trouve dans un NAT). Lorsque le client n'a pas la propriété définie dans ses propriétés système, il lève le NPE au lieu de signaler le problème avec le InvokerURL qu'il a reçu.

Questions connexes