Details
-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
1.0.5.Final
-
None
Description
Remote client does not work with link-local address when it has specified zone id of an interface.
I've tried to start server with either of these commands (one is defined with zone id and other one without):
./bin/standalone.sh -c=standalone-full.xml -Djboss.node.name=servernode -Djboss.bind.address=fe80::ce00:bff:fefc:0%p2p1 -Djboss.bind.address.management=fe80::ce00:bff:fefc:0%p2p1 -Djboss.bind.address.unsecure=fe80::ce00:bff:fefc:0%p2p1 -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true
./bin/standalone.sh -c=standalone-full.xml -Djboss.node.name=servernode -Djboss.bind.address=fe80::ce00:bff:fefc:0 -Djboss.bind.address.management=fe80::ce00:bff:fefc:0 -Djboss.bind.address.unsecure=fe80::ce00:bff:fefc:0 -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true
I run the client from the same machine where the server is started. In both cases client connects when the configuration of its connection is done without zone id definition:
remote.connection.default.host=fe80:0:0:0:ce00:bff:fefc:0 remote.connection.default.port=4547
But when you use zone id
remote.connection.default.host=fe80:0:0:0:ce00:bff:fefc:0%p2p1 remote.connection.default.port=4547
then the client in the both cases finishes with exception:
WARN: Could not register a EJB receiver for connection to remote://fe80:0:0:0:ce00:bff:fefc:0%p2p1:4447 java.lang.RuntimeException: Operation failed with status WAITING at org.jboss.ejb.client.remoting.IoFutureHelper.get(IoFutureHelper.java:93) at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:121) at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.<init>(ConfigBasedEJBClientContextSelector.java:78) at org.jboss.ejb.client.EJBClientContext.<clinit>(EJBClientContext.java:77) at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:120) at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104) at $Proxy0.sayHello(Unknown Source) at client.ClientRemoteCallToServer.main(ClientRemoteCallToServer.java:15) Exception in thread "main" java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:myejb,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@17e4ca at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584) at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119) at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181) at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136) at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121) at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104) at $Proxy0.sayHello(Unknown Source) at client.ClientRemoteCallToServer.main(ClientRemoteCallToServer.java:15)
The same thing is happening for host of remote-destination of utbound-socket-binding tag. When the zone id is used then the connection to remote server is not successful.