首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >weblogic上下文查找错误: java.rmi.UnmarshalException:错误解组参数

weblogic上下文查找错误: java.rmi.UnmarshalException:错误解组参数
EN

Stack Overflow用户
提问于 2009-09-01 10:03:30
回答 2查看 13.7K关注 0票数 3

我们在生产中面临着一个问题。我们在网上搜了一遍又一遍,却找不到任何答案。此错误(下面的堆栈跟踪)发生在ejb查找从托管服务器1到管理服务器2时,使用虚拟ip进行查找。这是间歇性和随机间隔发生的。我们无法识别任何模式,如果ejb调用尝试了两三次,它就成功地通过了。

环境详细信息:服务器:WebLogic10.0运行在java1.5os上的MP1 : solaris

如果需要任何其他细节,请回复。

用于查找的源:

代码语言:javascript
运行
复制
private TreControlRemote getController() throws Exception {
    Context context = null;
    Properties p = new Properties();
    TreControlHome treHome = null;
    TreControlRemote remote = null;
    ConfigurationLoader lAppLoader = null;
    try {
        mLog.debug("Entering");
        lAppLoader = PropertiesFileLoader.getInstance("context.properties");
        p.put(Context.INITIAL_CONTEXT_FACTORY, lAppLoader.getValue("INITIAL_CONTEXT_FACTORY"));
        p.put(Context.PROVIDER_URL, lAppLoader.getValue("PROVIDER_URL"));
        context = new InitialContext(p);
        mLog.debug("context : " + context.getEnvironment());
        remote = null;
        treHome = (TreControlHome) context.lookup("CONTROL");
        mLog.debug("Object --->>>>" + treHome);
        remote = (TreControlRemote) treHome.create();
        mLog.debug("Leaving");
    } catch (Exception ex) {
        mLog.fatal("Exception while getting remote", ex);
        ex.printStackTrace();
        throw ex;
    } finally {
        lAppLoader = null;
    }
    return remote;
}

url是一个指向托管服务器2的虚拟ip,它包含一个带有jndi“控件”的ejb。问题是,它在某些八次运算中成功,并随机失败,错误如下:

错误的堆栈跟踪:

代码语言:javascript
运行
复制
*javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.StreamCorruptedException]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:74)
at weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java:426)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:382)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:367)
at javax.naming.InitialContext.lookup(InitialContext.java:351)

由: java.rmi.UnmarshalException:错误解组参数引起;嵌套异常是:

java.io.StreamCorruptedException

在weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:221)

在weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:338)

在weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252)

在weblogic.jndi.internal.ServerNamingNode_1001_WLStub.lookup(Unknown源代码中)

在weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:379)

. 33

由: java.io.StreamCorruptedException引起

在java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)

在java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)

在weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:195)

在weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:565)

在weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:191)

在weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown源代码中)

在weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)

在weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)

在weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:479)

在weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)

在weblogic.security.service.SecurityManager.runAs(Unknown源代码中)

在weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:475)

在weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:59)

在weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:1016)

.再增加2个*

代码语言:javascript
运行
复制
Obtained the below mentioned stacktrace from the weblogic log. Could this error be related to our problem mentioned above?

```javascript

2009年2:11:04 AM <> <1251162664181> <<><1251162664181>.net:10240,pkssv049..net:10241,pkssv050..net:10240,BST>

“'5433424963141690658S:169.93.73.0:10040,10040,- id: pkssv050..net:10241:LIQP1_LMSDomain:M1AP3‘-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1:pkssv050 049。.net:10240,pkssv049..net:10241,pkssv050..net:10240,pkssv050..net:10241:LIQP1_LMSDomain:M1AP3’connection time:'Mon Aug 24 20:24:02 BST 2009‘”的连接管理器已经关闭。

“'5433424963141690658S:169.93.73.0:10040,10040,- id: pkssv050..net:10241:LIQP1_LMSDomain:M1AP3‘-1,-1,-1,-1,-1,-1,-1,-1,-1:pkssv050 049..net:10240,pkssv049..net:10241,pkssv050..net:10240,pkssv050..net:10241:LIQP1_LMSDomain:M1AP3’connection time:'Mon 24 20:24:02 BST 2009‘”的连接管理器已经关闭。

在weblogic.rjvm.ConnectionManager.getOutputStream(ConnectionManager.java:1686)

在weblogic.rjvm.ConnectionManager.createHeartbeatMsg(ConnectionManager.java:1629)

在weblogic.rjvm.ConnectionManager.sendHeartbeatMsg(ConnectionManager.java:607)

在weblogic.rjvm.RJVMImpl$HeartbeatChecker.timerExpired(RJVMImpl.java:1540)

在weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)

在weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:464)

在weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)

在weblogic.work.ExecuteThread.run(ExecuteThread.java:172)*

代码语言:javascript
运行
复制

任何帮助都将不胜感激。

这是一些额外的信息..。

这个问题是断断续续的,还是每一次都会重现?如果问题是间歇性的,你知道它是在什么条件下发生的吗?它是间歇性的,我们不能观察到任何模式。

是否有其他错误/警告记录在本地服务器或远程服务器上?我们在weblogic日志中看到了许多拒绝连接的错误

两个托管服务器都在同一个域中吗?是

EN

回答 2

Stack Overflow用户

发布于 2009-11-17 20:27:38

当您将com.myclientcompany.server.eai.interactionspecimpl的实例作为参数传递给ejb时。weblogic需要在ejb上下文下反序列化(解编组)对象,它需要解组所需的类。因此,如果在ejb-jar文件中包含interactionspecimpl类,则不需要将这些类包括在服务器类路径中。

票数 -1
EN

Stack Overflow用户

发布于 2011-03-12 10:10:19

如果在中间有一个重复的条目,或者由于空白,则可能会发生此问题。

您需要检查所有配置文件,包括JDBC、JMS和config.xml文件,以找到这些文件和条目。

在从控制台输入JNDI名称时,请检查是否留有空白。

删除空白或删除重复条目解决了此问题。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1361615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档