I try running JBoss AS 7.1 in Linux RedHat 6, the NIO issue does not happen in Linux environment.
However, when I was running EJB client in Windows Vista , I encountered this problem:
Mar 12, 2012 1:14:34 PM org.jboss.ejb.client.EJBClient <clinit>
INFO: JBoss EJB Client version 1.0.2.Final
Mar 12, 2012 1:14:35 PM org.xnio.Xnio <clinit>
INFO: XNIO Version 3.0.3.GA
Mar 12, 2012 1:14:35 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.0.3.GA
Mar 12, 2012 1:14:35 PM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 3.2.2.GA
Mar 12, 2012 1:14:35 PM org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector setupEJBReceivers
WARN: Could not register a EJB receiver for connection to remote://fe80::218:8bff:fe1e:c118:4447
java.lang.IllegalArgumentException: destination address may not be null
at org.jboss.remoting3.remote.RemoteConnectionProvider.connect(RemoteConnectionProvider.java:98)
at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:296)
at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:251)
at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:349)
at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:333)
at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:113)
at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.<init>(ConfigBasedEJBClientContextSelector.java:77)
at org.jboss.ejb.client.EJBClientContext.<clinit>(EJBClientContext.java:76)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:120)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.getLogs(Unknown Source)
at com.mytest.ejb.EJBClient.main(EJBClient.java:36)
java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:test-web-service,distinctname:] combination
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:530)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:84)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:175)
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.getLogs(Unknown Source)
at com.mytest.ejb.EJBClient.main(EJBClient.java:36)
My jboss-ejb-client.properties is set as below:
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
#remote.connection.default.host=fe80--218-8bff-fe1e-c118.ipv6-literal.net
# tested working fine with IPv 4
#remote.connection.default.host=192.168.2.166
remote.connection.default.host=fe80::218:8bff:fe1e:c118
#remote.connection.default.host=[fe80::ed29:5b4b:37cc:d429]
remote.connection.default.port = 4447
My pom.xml is as below
<!-- Import the transaction spec API, we use runtime scope because we aren't using any direct
reference to the spec API in our client code -->
<dependency>
<groupId>org.jboss.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.1_spec</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Import the EJB 3.1 API, we use runtime scope because we aren't using any direct
reference to EJB spec API in our client code -->
<dependency>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.1_spec</artifactId>
<scope>runtime</scope>
</dependency>
<!-- JBoss EJB client API jar. We use runtime scope because the EJB client API
isn't directly used in this example. We just need it in our runtime classpath -->
<dependency>
<groupId>org.jboss</groupId>
<artifactId>jboss-ejb-client</artifactId>
<version>1.0.2.Final</version>
<scope>runtime</scope>
</dependency>
<!-- client communications with the server use XNIO -->
<dependency>
<groupId>org.jboss.xnio</groupId>
<artifactId>xnio-api</artifactId>
<version>3.0.3.GA</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jboss.xnio</groupId>
<artifactId>xnio-nio</artifactId>
<version>3.0.3.GA</version>
<scope>runtime</scope>
</dependency>
<!-- The client needs JBoss remoting to access the server -->
<dependency>
<groupId>org.jboss.remoting3</groupId>
<artifactId>jboss-remoting</artifactId>
<version>3.2.2.GA</version>
<scope>runtime</scope>
</dependency>
<!-- Remote EJB accesses can be secured -->
<dependency>
<groupId>org.jboss.sasl</groupId>
<artifactId>jboss-sasl</artifactId>
<version>1.0.0.Final</version>
</dependency>
<!-- data serialization for invoking remote EJBs -->
<dependency>
<groupId>org.jboss.marshalling</groupId>
<artifactId>jboss-marshalling-river</artifactId>
<version>1.3.9.GA</version>
<scope>runtime</scope>
</dependency>
Do I need the get the latest jboss-ejb-client jar ?