2016-08-17 8 views
2

私のJavaプログラムでこの例外が発生しています。この例外が来ているのはなぜ MarshalException: Failed to communicate due to unread block dataMarshalException:未読ブロックデータのために通信に失敗しました

java.rmi.MarshalException: Failed to communicate. 
    Problem during marshalling/unmarshalling; nested exception is: 
       java.lang.IllegalStateException: unread block data 
com.naresh.product.common.exception.ApplicationException: 
    java.rmi.MarshalException: Failed to communicate. 
    Problem during marshalling/unmarshalling; nested exception is: 
       java.lang.IllegalStateException: unread block data 

    at com.naresh.product.client.library.util.ServerDelegate.search(Unknown Source) 
    at com.naresh.product.client.Product.workflow.form4.ProductForm4DashboardView.refreshDashboard(Unknown Source) 
    at com.naresh.product.client.Product.workflow.form4.ProductForm4DashboardView.access$3(Unknown Source) 
    at com.naresh.product.client.Product.workflow.form4.ProductForm4DashboardView$7.run(Unknown Source) 
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464) 
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372) 
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507) 
    at com.naresh.product.client.Product.workflow.form4.ProductForm4DashboardView.refreshDashboard(Unknown Source) 
    at com.naresh.product.client.Product.workflow.form4.ProductForm4DashboardView$5.widgetSelected(Unknown Source) 
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at com.naresh.product.client.app.Application.start(Unknown Source) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1408) 

Caused by: java.rmi.MarshalException: Failed to communicate. Problem during marshalling/unmarshalling; nested exception is: 
    java.lang.IllegalStateException: unread block data 

    at org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker.java:122) 
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:646) 
    at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122) 
    at org.jboss.remoting.Client.invoke(Client.java:1634) 
    at org.jboss.remoting.Client.invoke(Client.java:548) 
    at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.invoke(UnifiedInvokerProxy.java:183) 
    at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365) 
    at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197) 
    at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61) 
    at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70) 
    at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112) 
    at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100) 
    at $Proxy1.search(Unknown Source) 

    ... 34 more 

Caused by: java.lang.IllegalStateException: unread block data 

    at java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode(ObjectInputStream.java:2376) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1360) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) 
    at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObjectVersion2_2(JavaSerializationManager.java:239) 
    at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:133) 
    at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:120) 
    at org.jboss.invocation.unified.marshall.InvocationUnMarshaller.read(InvocationUnMarshaller.java:59) 
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedRead(MicroSocketClientInvoker.java:957) 
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:586) 

    ... 45 more 

。あなたはそれを解決するための任意のアイデアを持っていますか? java.io.ObjectInputStream.BlockDataInputStreamのJavadocから

+0

をあなたの質問をする

  • はそれでバグを持つカスタム 'のreadObject()'メソッドを持っています。 – EJP

  • 答えて

    1

    ブールjava.io.ObjectInputStream.BlockDataInputStream.setBlockDataMode(ブールnewmode)がIOExceptionを

    セットは、所与のモード(真==上へのデータモードをブロックスローfalse == off)、 は前のモード値を返します。新しいモードが古いモードの と同じ場合は何も行われません。 IllegalStateException - ブロック のデータモードがオンからオフに切り替えられているときに、使用されていないブロックデータ がストリーム内にまだ存在する場合はスローされます。

    しかし、スタックトレースでは、問題の起点はorg.jboss.remoting.transport.socket.MicroSocketClientInvokerです。これは、一部のオブジェクトでデシリアライゼーションを処理します。

    だから、スタックトレースだけでこのエラーの原因を推測するのは難しいでしょう。 少し運があれば、正確な答えを得ることができます。 それが当てはまらない場合でも、私はあなたにいくつかのトラックを提案する:可能な場合のJBoss LIBのバージョンを更新またはダウングレードする

    • を。多分、それはバグです。
    • サーバーをブレークポイントで実行して、問題の根本原因を発見します。あなたが受けているものは何でもJBossのサポートに
    +0

    私は試してみましたが、私の問題を解決できないことを知らせて申し訳ありません。そして、私はjbossサポートチームが解決策を提示できないと思います。 –

    +0

    実行時にブレークポイントを使用すると、例外をトリガするコードを入力する必要があります。 jbossのサポート、libの所有者があなたを助けることができない場合、ここで正確な答えを急いではいけません。 – davidxxx

    関連する問題