HttpInvoker on 4.0.5GA doesn't correctly marshal exceptions from EJB methods.
I'm getting this exception: | org.jboss.remoting.CannotConnectException: Can not connect http client invoker. | at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:201) | at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:81) | at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143) | at org.jboss.remoting.Client.invoke(Client.java:525) | at org.jboss.remoting.Client.invoke(Client.java:488) | at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102) | at $Proxy1.getPossibleFAs(Unknown Source) | at com.sd.sdmain.gui.login.LoginDialog$5.run(LoginDialog.java:163) | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) | at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) | at java.util.concurrent.FutureTask.run(FutureTask.java:123) | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:65) | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:168) | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) | at java.lang.Thread.run(Thread.java:595) | Caused by: java.io.StreamCorruptedException: invalid stream header | at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:753) | at java.io.ObjectInputStream.<init>(ObjectInputStream.java:268) | at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.<init>(ObjectInputStreamWithClassLoader.java:73) | at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.createInput(JavaSerializationManager.java:52) | at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:119) | at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:66) | at org.jboss.remoting.marshal.http.HTTPUnMarshaller.read(HTTPUnMarshaller.java:131) | at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:175) | ... 23 more | on the CLIENT when I'm throwing from server method (or receive EJBAccessException from JBoss). All necessary class definitions are available on the client. I've tried to change serialization type from "java" to "jboss": | <mbean code="org.jboss.remoting.transport.Connector" | name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"> | <depends>jboss.aop:service=AspectDeployer</depends> | <!--attribute name="InvokerLocator">socket://${jboss.bind.address}:3873</attribute--> | <attribute name="InvokerLocator">${custom.server.connector}://${custom.server.host}:${custom.server.port}/servlet-invoker/ServerInvokerServlet?serializationtype=jboss</attribute> | | <attribute name="Configuration"> | <handlers> | <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler> | </handlers> | </attribute> | </mbean> | But now I get ANOTHER exception: | org.jboss.remoting.CannotConnectException: Can not connect http client invoker. | at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:201) | at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:81) | at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143) | at org.jboss.remoting.Client.invoke(Client.java:525) | at org.jboss.remoting.Client.invoke(Client.java:488) | at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102) | at $Proxy1.getSelf(Unknown Source) | at com.sd.sdmain.gui.login.LoginDialog$5.run(LoginDialog.java:161) | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) | at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) | at java.util.concurrent.FutureTask.run(FutureTask.java:123) | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:65) | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:168) | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) | at java.lang.Thread.run(Thread.java:595) | Caused by: java.lang.ClassCastException: org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput | at org.jboss.aop.util.MarshalledValue.writeExternal(MarshalledValue.java:190) | at org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276) | at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206) | at org.jboss.aop.metadata.SimpleMetaData.writeExternal(SimpleMetaData.java:226) | at org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276) | at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206) | at org.jboss.aop.joinpoint.MethodInvocation.writeExternal(MethodInvocation.java:321) | at org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276) | at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206) | at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182) | at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90) | at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276) | at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206) | at org.jboss.serial.io.JBossObjectOutputStream.writeObjectOverride(JBossObjectOutputStream.java:181) | at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:287) | at org.jboss.remoting.marshal.http.HTTPMarshaller.write(HTTPMarshaller.java:69) | at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:164) | ... 23 more | I've tried to search the web for this exception and found only one thread on this forum with this problem: http://www.jboss.com/index.html?module=bb&op=viewtopic&t=89387 Does anybody have any ideas how to solve it? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3989701#3989701 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3989701 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user