簡體   English   中英

從JBoss 4.0.1到4.2.3嘗試RMI / HTTP時出現NamingException

[英]NamingException when trying RMI/HTTP from JBoss 4.0.1 to 4.2.3

我有一個應用程序正在嘗試在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內部,則此功能很有用)。

當客戶端在其系統屬性中未定義屬性時,它將引發NPE,而不是報告收到的InvokerURL的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM