慕無(wú)忌1623718
2022-06-04 09:42:21
我是使用 Java 7使用 WebLogic Server 版本:12.1.3.0.0 (12c)將一組 EJB3 bean 作為部署的 EAR 文件的一部分只是在我的 bean 上使用 @Stateless 注釋能夠在 JNDI 視圖中看到 bean(例如 java:global.ifactory.ifactory-ejb-4.0.0.BomServiceBean!com.icumed.ifactory3.service.BomServiceRemote)運(yùn)行試圖訪問(wèn)這些 EJB 的命令行應(yīng)用程序我正在使用 wlthint3client.jar已禁用 IIOP但是,當(dāng)我有“java:global”(我得到 NameNotFoundException:remaining name...)時(shí),我無(wú)法訪問(wèn) bean,沒(méi)有它我只會(huì)稍微走得更遠(yuǎn)。它在查找時(shí)仍然失敗,但有以下異常:java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long at weblogic.rmi.internal.StubInfo.getEnvQueriedJNDITimeout(StubInfo.java:256)... at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:426) at javax.naming.InitialContext.lookup(InitialContext.java:411)我錯(cuò)過(guò)了什么或有什么問(wèn)題?
1 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
問(wèn)題出在 wlthint3client.jar (StubInfo.java) 的代碼中。如果您在 jndi.properties 文件中指定以下兩個(gè)屬性,則它們不會(huì)正確地從 String 轉(zhuǎn)換為 Long。
Long o = (Long)props.get("weblogic.jndi.responseReadTimeout");
if (o == null) {
o = (Long)props.get("weblogic.rmi.clientTimeout");
}
如果需要設(shè)置這些屬性,則必須在代碼中創(chuàng)建一個(gè) Hashtable 并將其傳遞給 InitialContext。
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put("weblogic.jndi.responseReadTimeout", 15000L);
env.put("weblogic.rmi.clientTimeout", 15000L);
添加回答
舉報(bào)
0/150
提交
取消