java - 为什么我的 RMI/IIOP java 客户端在 Calendar 类上出现 CORBA MARSHAL 异常?
问题描述
我有一个 Java RMI/IIOP 客户端连接到在 Glassfish 5.1 中运行的 SessionBean。我能够查找接口并调用返回原始类型的方法。当我尝试调用返回应用程序对象的方法时,我收到以下错误。当 CORBA/RMI 代码解组标准 Java 日历对象,更具体地说是日历对象中的 TimeZone 时,似乎会发生错误。日历对象是可序列化的,我的应用程序对象也是可序列化的,它包含日历实例。有任何想法吗???
-- looking up interface [ejb/MPSInterface]--------------------------------------------------------
areYouAlive() returned: true
isServerBusy() returned: false
issuing login request...
Login failed: Unable to establish user session:
javax.ejb.EJBException: java.rmi.MarshalException: CORBA MARSHAL 1330446347 Maybe; nested exception is:
org.omg.CORBA.MARSHAL: WARNING: 00810011: Exception from readValue on ValueHandler in CDRInputStream vmcid: OMG minor code: 11 completed: Maybe
javax.ejb.EJBException: java.rmi.MarshalException: CORBA MARSHAL 1330446347 Maybe; nested exception is:
org.omg.CORBA.MARSHAL: WARNING: 00810011: Exception from readValue on ValueHandler in CDRInputStream vmcid: OMG minor code: 11 completed: Maybe
at goesr.gs.mm.mps.msi.clientinterface._MPSInterface_Wrapper.processRequest(goesr/gs/mm/mps/msi/clientinterface/_MPSInterface_Wrapper.java)
at goesr.gs.mm.mps.mpui.unit.CmdLineClient.login(CmdLineClient.java:47)
at goesr.gs.mm.mps.mpui.unit.CmdLineClient.main(CmdLineClient.java:33)
Caused by: java.rmi.MarshalException: CORBA MARSHAL 1330446347 Maybe; nested exception is:
org.omg.CORBA.MARSHAL: WARNING: 00810011: Exception from readValue on ValueHandler in CDRInputStream vmcid: OMG minor code: 11 completed: Maybe
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:193)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:171)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:110)
at com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:196)
at goesr.gs.mm.mps.msi.clientinterface.__MPSInterface_Remote_DynamicStub.processRequest(goesr/gs/mm/mps/msi/clientinterface/__MPSInterface_Remote_DynamicStub.java)
... 3 more
Caused by: org.omg.CORBA.MARSHAL: WARNING: 00810011: Exception from readValue on ValueHandler in CDRInputStream vmcid: OMG minor code: 11 completed: Maybe
at com.sun.proxy.$Proxy19.valuehandlerReadException(Unknown Source)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:788)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:883)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:701)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:694)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:684)
at com.sun.corba.ee.impl.encoding.CDRInputObject.read_abstract_interface(CDRInputObject.java:514)
at com.sun.corba.ee.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:279)
at com.sun.corba.ee.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:431)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:365)
at java.util.Calendar$1.run(Calendar.java:3546)
at java.util.Calendar$1.run(Calendar.java:3543)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.Calendar.readObject(Calendar.java:3542)
at com.sun.corba.ee.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1727)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1109)
at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:313)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:274)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:240)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:781)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:883)
at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:488)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2054)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2296)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1119)
at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:313)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:274)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:240)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:781)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:883)
at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:488)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2054)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2296)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1119)
at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:313)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:274)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:240)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:781)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:883)
at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:488)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl$14.read(DynamicMethodMarshallerImpl.java:353)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.readResult(DynamicMethodMarshallerImpl.java:452)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:161)
... 6 more
Caused by: java.lang.ClassCastException: Assigning instance of class java.lang.String to field java.util.TimeZone#ID
at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2345)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1119)
at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:313)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:274)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:240)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:781)
... 47 more
Caused by: java.lang.IllegalArgumentException
at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2322)
... 52 more
closing context...
Exiting
解决方案
推荐阅读
- reactjs - React TypeScript 16.8 - 如何在没有 Helmet 的情况下更改页面标题
- shell - 用于生成文件中的可选字符串的 Shell 通配符/glob
- android - MVVM 我应该从哪里订阅 Rx?
- mysql - 我正在尝试打开一个游标。尽管与 mysql 数据库有连接,但它无法正常工作
- c# - 如何使用 c# 执行时间比较来自 2 个数组的单个属性应该是最少的
- java - 如何在corda中创建服务以将任意数据存储在节点数据库中的任意位置而不是保险库内
- reactjs - 如何不使用“react-intl-translations-manager”删除现有翻译?
- excel - 如何将文本从 Excel 发送到一个单词(单元格)为粗体的 Word?
- apache-kafka - Kafka 连接与多个消息队列的集成
- c# - 我想根据间隔(15,30,,45,60)组合我的时间段,并在 sql 存储过程中添加列