Mantis - Hessian
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
3030 | major | always | 10-30-08 01:43 | 04-21-10 05:37 | |
|
|||||
Reporter: | shawnchain | Platform: | |||
Assigned To: | OS: | ||||
Priority: | normal | OS Version: | |||
Status: | new | Product Version: | 3.1.5 | ||
Product Build: | Resolution: | open | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | |||
|
|||||
Summary: | 0003030: Server side exception could not be serialized to cilent side. | ||||
Description: |
I have a service setup and exposed with Spring-Remoting/Hessian. The server side API might throw some IOException or FileNotFoundException. But at client side, I got the HessianProtocolException instead of the desired IOException. The problem is gone after revert back to hessian 3.1.3. Below is the error stack trace com.caucho.hessian.io.HessianProtocolException: readObject: unexpected end of file at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2701) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2010) at com.caucho.hessian.io.AbstractMapDeserializer.readObject(AbstractMapDeserializer.java:67) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1756) at com.caucho.hessian.io.ArrayDeserializer.readList(ArrayDeserializer.java:95) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1703) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:387) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157) at com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:376) at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2054) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1980) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1972) at com.caucho.hessian.io.Hessian2Input.readFault(Hessian2Input.java:1629) at com.caucho.hessian.io.Hessian2Input.prepareFault(Hessian2Input.java:428) at com.caucho.hessian.io.Hessian2Input.startReply(Hessian2Input.java:417) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:218) at $Proxy0.createFile(Unknown Source) 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:585) at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:219) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy1.createFile(Unknown Source) at com.alibaba.platform.aranda.client.HessianClientTest.testCreateFile(HessianClientTest.java:62) 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:585) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) org.springframework.remoting.RemoteAccessException: Cannot access Hessian remote service at [http://localhost:8080/aranda/service/hessian]; [^] nested exception is com.caucho.hessian.io.HessianFieldException: java.lang.Throwable.stackTrace: readObject: unexpected end of file at org.springframework.remoting.caucho.HessianClientInterceptor.convertHessianAccessException(HessianClientInterceptor.java:254) at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:225) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy1.createFile(Unknown Source) at com.alibaba.platform.aranda.client.HessianClientTest.testCreateFile(HessianClientTest.java:62) 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:585) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: com.caucho.hessian.io.HessianFieldException: java.lang.Throwable.stackTrace: readObject: unexpected end of file at com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:590) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:391) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157) at com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:376) at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2054) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1980) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1972) at com.caucho.hessian.io.Hessian2Input.readFault(Hessian2Input.java:1629) at com.caucho.hessian.io.Hessian2Input.prepareFault(Hessian2Input.java:428) at com.caucho.hessian.io.Hessian2Input.startReply(Hessian2Input.java:417) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:218) at $Proxy0.createFile(Unknown Source) 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:585) at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:219) ... 20 more Caused by: com.caucho.hessian.io.HessianProtocolException: readObject: unexpected end of file at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2701) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2010) at com.caucho.hessian.io.AbstractMapDeserializer.readObject(AbstractMapDeserializer.java:67) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1756) at com.caucho.hessian.io.ArrayDeserializer.readList(ArrayDeserializer.java:95) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1703) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:387) ... 36 more |
||||
Steps To Reproduce: | |||||
Additional Information: | |||||
Relationships | |||||
Attached Files: |
Notes | |||||
|
|||||
|
|