CannotConnectException JBoss4.0.3
robaks Oct 18, 2005 9:49 AMI have problem with connecting to JBoss instance from standalone Java client.
I have this problem with JBoss 4.0.3 with JBoss 4.0.3RC2 all goes fine.
I've prepared some classes to replicate this problem.
session bean class:
import javax.ejb.Remote; import javax.ejb.Stateless; @Stateless @Remote(HelloWorldRemote.class) public class HelloWorldBean implements HelloWorld{ public String hello(String msg) { return "Hello " + msg + " world!"; } }
interface classes:
public interface HelloWorld { String hello(String msg); } ... import javax.ejb.Remote; @Remote public interface HelloWorldRemote extends HelloWorld{ }
client class:
import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; public class HelloWorldClient implements HelloWorld{ public String hello(String msg) { // TODO Auto-generated method stub return getDelegate().hello(msg); } private HelloWorld getDelegate() { try { InitialContext ctx1; Properties env = new Properties(); env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.security.jndi.JndiLoginInitialContextFactory"); env.setProperty(Context.SECURITY_PRINCIPAL, "guest"); env.setProperty(Context.SECURITY_CREDENTIALS, "q"); ctx1 = new InitialContext(env); return (HelloWorld) ctx1.lookup(HelloWorldRemote.class.getName()); } catch (Throwable e) { e.printStackTrace(); System.exit(1); } return null; } public static void main(String[] args) { HelloWorld hello = new HelloWorldClient(); System.out.println(hello.hello("JBoss4.0.3")); } }
I'am using JBoss all configuration prepared to use EJB3
All deploys fine, but when I run client I have to wait couple of second and I can see following Exception on the server side:
15:18:35,786 ERROR [ServerThread] failed to process invocation. java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) at java.io.BufferedInputStream.read(BufferedInputStream.java:313) at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2217) at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2230) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2698) at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:750) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:268) at org.jboss.remoting.transport.socket.ServerSocketWrapper.createInputStream(ServerSocketWrapper.java:33) at org.jboss.remoting.transport.socket.ClientSocketWrapper.getInputStream(ClientSocketWrapper.java:62) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:239) at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:285) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:169)
And after few more soconds on the client:
Exception in thread "main" org.jboss.remoting.CannotConnectException: Can not get connection to server. Problem establishing socket connection. at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:230) at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:112) at org.jboss.remoting.Client.invoke(Client.java:226) at org.jboss.remoting.Client.invoke(Client.java:189) at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:41) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88) at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88) at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:40) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88) at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:41) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88) at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:88) at $Proxy1.hello(Unknown Source) at pl.kapital.HelloWorldClient.hello(HelloWorldClient.java:13) at pl.kapital.HelloWorldClient.main(HelloWorldClient.java:37) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at org.jboss.remoting.transport.socket.SocketClientInvoker.createClientSocket(SocketClientInvoker.java:452) at org.jboss.remoting.transport.socket.SocketClientInvoker.getConnection(SocketClientInvoker.java:431) at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:226) ... 15 more Caused by: java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2232) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2698) at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:750) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:268) at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.<init>(ObjectInputStreamWithClassLoader.java:43) at org.jboss.remoting.transport.socket.ClientSocketWrapper.createInputStream(ClientSocketWrapper.java:40) at org.jboss.remoting.transport.socket.ClientSocketWrapper.<init>(ClientSocketWrapper.java:32) ... 22 more
What is wrong with the new JBoss?
Is that a bug or configuration issue.
What should I do to get it right?
Rafal