类序列化帮助(org.omg.CORBA.MARSHAL:WARNUNG:IOP00810011:Exception ... error)

Fra*_*sco 6 java

我有以下界面:

public interface Ranged
{
  public Object getRangeStart();
  public Object getRangeEnd();

  public void setRangeStart(Object rangeStart);
  public void setRangeEnd(Object rangeEnd);
}
Run Code Online (Sandbox Code Playgroud)

以及以下实施类:

public class DateRange implements Ranged, Serializable
{
  private static final long serialVersionUID=SerialVersionUID.getSerialVersionUID();
  public DateRange()
  {

  }

  private Date  dateFrom;
  private Date  dateTo;

  public Object getRangeStart()
  {
    return (Date)dateFrom;
  }

  public Object getRangeEnd()
  {
    return (Date)dateTo;
  }

  public void setRangeStart( Object from )
  {
    this.dateFrom = (Date)from;
  }

  public void setRangeEnd( Object to )
  {
    this.dateTo = (Date)to;
  }
}
Run Code Online (Sandbox Code Playgroud)

我以下列方式使用DateRange类:

...
private DateRange  creationDate;
private Date    rangeStart;
private Date    rangeStop;
...

public DateRange getCreationDate()
{
  SimpleDateFormat sdf_incoming = new SimpleDateFormat("yyyy-MM-dd");
  SimpleDateFormat sdf_outgoing = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

  creationDate = null;

  try
  {
    if (!isDateRange())
    {
      if (!rangeStart.toString().equals(""))
      {
        creationDate = new DateRange();
        creationDate.setRangeStart(sdf_outgoing.parse(sdf_incoming.format(rangeStart) + TIME_0));
        creationDate.setRangeEnd(sdf_outgoing.parse(sdf_incoming.format(rangeStart) + TIME_24));
      }
    }
    else
    {
      if (!rangeStart.toString().equals("") && rangeStop.toString().equals(""))
      {
        creationDate = new DateRange();
        creationDate.setRangeStart(sdf_outgoing.parse(sdf_incoming.format(rangeStart) + TIME_0));
        creationDate.setRangeEnd(sdf_outgoing.parse(MAX_DATE));
      }
      else if (rangeStart.toString().equals("") && !rangeStop.toString().equals(""))
      {
        creationDate = new DateRange();
        creationDate.setRangeStart(sdf_outgoing.parse(MIN_DATE));
        creationDate.setRangeEnd(sdf_outgoing.parse(sdf_incoming.format(rangeStop) + TIME_24));
      }
      else
      // both set
      {
        creationDate = new DateRange();
        creationDate.setRangeStart(sdf_outgoing.parse(sdf_incoming.format(rangeStart) + TIME_0));
        creationDate.setRangeEnd(sdf_outgoing.parse(sdf_incoming.format(rangeStop) + TIME_24));
      }
    }
  }
  catch (ParseException e)
  {
    e.printStackTrace();
  }

 return creationDate;
}
...
Run Code Online (Sandbox Code Playgroud)

这发生在客户端,当creationDate应序列化并传递到服务器端时,我收到以下错误:

[exec] 2011-12-06T13:34:00.132 + 0100 |警告| glassfish3.1 | javax.enterprise.resource.corba.ORBUtil | _ThreadID = 17; _ThreadName = Thread-1; | IOP00810011:来自ValueHandler的readValue异常CDRInputStream [exec] org.omg.CORBA.MARSHAL:WARNUNG:IOP00810011:来自CDRInputStream中的ValueHandler的readValue异常vmcid:OMG次代码:11完成:可能[exec] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)[exec] ] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)[exec] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)[exec] at java.lang.reflect.Constructor.newInstance(Constructor. java:513)[exec] at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:248)[exec] at com.sun.corba.ee.spi.orbutil. logex.corba.CorbaExtension.makeException(CorbaExtension.java:95)[exec] at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.han dleFullLogging(WrapperGenerator.java:387)[exec] at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access $ 400(WrapperGenerator.java:107)[exec] at com.sun.corba.ee.spi .orbutil.logex.WrapperGenerator $ 2.invoke(WrapperGenerator.java:511)[exec] at com.sun.corba.ee.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke(CompositeInvocationHandlerImpl.java:99)[exec] at $ Proxy157 .valuehandlerReadException(Unknown Source)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:1022)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0. read_value(CDRInputStream_1_0.java:1123)[exec] at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:531)[exec] at com.sun.corba.ee.impl.io. IIOPInputStream.inputObjectField(IIOPInputStream.java:2162)[exec] at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2404)[exec] at com.sun.corba.ee.impl. io.IIOPInputStream.inputObject(IIOPInputStream.ja va:1224)[exec] at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:425)[exec] at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal( ValueHandlerImpl.java:308)在com.sun.corba.ee.impl.encoding.CDRInputStream_1_0 [EXEC]在com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:274)[EXEC]. readRMIIIOPValueType(CDRInputStream_1_0.java:1015)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1123)[exec] at com.sun.corba.ee.impl.encoding. CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:935)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:928)[exec] at com.sun.corba.ee.impl. encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:918)[exec] at com.sun.corba.ee.impl.encoding.CDRInputObject.read_abstract_interface(CDRInputObject.java:557)[exec] at com.sun.corba.ee. impl.io.IIOPInputStream.readObjectDelegat e(IIOPInputStream.java:391)[exec] at com.sun.corba.ee.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:544)[exec] at java.io.ObjectInputStream.readObject(ObjectInputStream.java: 345)[exec] at java.util.ArrayList.readObject(ArrayList.java:593)[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39)[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[exec] at java.lang.reflect.Method.invoke(Method.java:597)[exec] at com.sun.corba .ee.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1832)[exec] at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1214)[exec] at com.sun .corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:425)[EXEC]在com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:308)[EXEC]在玉米.sun.corba.ee.impl.io.ValueHandlerIm pl.readValue(ValueHandlerImpl.java:274)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:1015)[exec] at com.sun.corba.ee.impl. encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1123)[exec] at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:531)[exec] at com.sun.corba.ee. impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2162)[exec] at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2404)[exec] at com.sun.corba. ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)[exec] at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:425)[exec] at com.sun. corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:308)[exec] at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:274)[exec] at com. sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_ 1_0.java:1015)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1123)[exec] at com.sun.corba.ee.impl.encoding.CDRInputObject. read_value(CDRInputObject.java:531)[EXEC]在com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl $ 14.read(DynamicMethodMarshallerImpl.java:384)[EXEC]在com.sun.corba.ee.impl .presentation.rmi.DynamicMethodMarshallerImpl.readArguments(DynamicMethodMarshallerImpl.java:451)[exec] at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.在com.sun.corba.ee.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:528)[exec] com.sun.corba.ee.impl.protocol中调用(ReflectiveTie.java:172)[exec]. CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:199)[exec] at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1624)[exec] at com.sun.corba.ee.impl. protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:126)[exec] at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:273)[exec] at com.sun.corba.ee. impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:200)[exec] at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)[exec] at com. sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubB ase.java:227)[exec] at ch.ethz.id.wai.lakshmi.engine.ejb._LakshmiServerInterfaceBeanRemote_Remote_DynamicStub.submitOrderContext(ch/ethz/id/wai/lakshmi/engine/ejb/__ LakshmiServerInter faceBeanRemote_Remote_DynamicStub.java)[exec] at ch.ethz.id.wai.lakshmi.engine.ejb._LakshmiServerInterfaceBeanRemote_Wrapper.submitOrderContext(ch/ethz/id在ch.ethz.id. /纬/拉克希米/发动机/ EJB/_LakshmiServerInterfaceBeanRemot e_Wrapper.java)[EXEC]在ch.ethz.id.wai.web.controller.Controller.submitOrder(Controller.java:49)[EXEC] wai.doi.DoiListController.submitOrder(DoiListController.java:56)在sun.reflect.NativeMethodAccessorImpl [EXEC]在ch.ethz.id.wai.web.controller.ListController.selectData(ListController.java:54)[EXEC]. invoke0(本地方法)[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[exec] at java.lang.reflect .Method.invoke(Method.java:597)[exec] at com.sun.el.parser.AstValue.invoke(AstValue.java:234)[exec] at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)[exec]位于com.sun.faces的com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)[exec]. facelet.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:131)[exec] at javax.faces.component.UIComponent $ ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2508)[exec] at javax.faces.event. SystemEvent.processListener(SystemEvent.java:106)[exec] at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2129)[exec] at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl. java:2077)[exec] at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:286)[exec] at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:244)[exec] ] com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)[exec] at com.sun.faces.lifecycle.Phase.doPhase(阶段).java:101)[exec] at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)[exec] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)[exec] at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)[exec] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)[exec] at org.apache.catalina .core.StandardContextValve.invoke(StandardContextValve.java:175)[exec] at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)[exec] at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:595)[exec] at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)[exec] at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91 )[exec] org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)[exec] org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)[exec] at org .apache.cata lina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)[exec]位于com.sun.grizzly的com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)[exec]. http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)[exec] at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)[exec] at com.sun.grizzly.http.ProcessorTask.process( ProcessorTask.java:1013)[exec] at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)[exec] at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)[exec ] com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)[exec] at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)[exec] at com.sun.grizzly.http. HttpProtocolChain.execute(HttpProtocolChain.java:79)[exec] at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)[exec] at com.sun.grizzly.SelectionKeyContextTask.call(Selectio)nKeyContextTask.java:59)[exec] at com.sun.grizzly.ContextTask.run(ContextTask.java:71)[exec] at com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:532) [exec] at com.sun.grizzly.util.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:513)[exec] at java.lang.Thread.run(Thread.java:619)[exec]引起:java. lang.NullPointerException [exec] at com.sun.corba.ee.impl.orbutil.ClassInfoCache $ ClassInfo.(ClassInfoCache.java:156)[exec] at com.sun.corba.ee.impl.orbutil.ClassInfoCache.get( ClassInfoCache.java:281)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1097)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0. read_value(CDRInputStream_1_0.java:935)[exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:928)[exec] at com.sun.corba.ee.impl.encoding. CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:918)[exec] at com.sun.corba.ee.imp l.encoding.CDRInputObject.read_abstract_interface(CDRInputObject.java:557)在com.sun.corba [EXEC]在com.sun.corba.ee.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:391)[EXEC]. ee.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:544)[exec] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:345)[exec] at java.util.HashMap.readObject(HashMap.java: 1030)[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java :25)[exec] at java.lang.reflect.Method.invoke(Method.java:597)[exec] at com.sun.corba.ee.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1832)[ exec] at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1214)[exec] at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:425 )[exec] at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:308)[exec] at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:274)[ exec] at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:1015)[exec] ... 98更多[exec] |#] [exec]

我错过了什么吗?我真的迷路了.DateRange实现Serializable和(java.util)Date也应该是可序列化的.如果需要更多信息,请告诉我.

Fra*_*sco 5

找到错误.DateRange类不在服务器端,因此服务器不知道如何对其进行反序列化.