Search code examples
javajakarta-eewildflyrmi

Wildfly 26.1.1: jboss-client.jar not working?


While updating an existing project from Wildfly version 26.0.0 to 26.1.1 I noticed that my rich client using RMI to communicate with the server does no longer work! I always get a stack trace like following:

org.jboss.ejb.client.RequestSendFailedException: EJBCLIENT000409: No more destinations are available
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:620) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocationResult(RemotingEJBClientInterceptor.java:57) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult(TransactionPostDiscoveryInterceptor.java:148) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocationResult(DiscoveryEJBClientInterceptor.java:130) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocationResult(NamingEJBClientInterceptor.java:87) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.AuthenticationContextEJBClientInterceptor.call(AuthenticationContextEJBClientInterceptor.java:59) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.AuthenticationContextEJBClientInterceptor.handleInvocationResult(AuthenticationContextEJBClientInterceptor.java:52) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:212) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:1003) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:182) ~[jboss-client.jar:26.1.1.Final]
        at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:116) ~[jboss-client.jar:26.1.1.Final]
        at jdk.proxy2.$Proxy17.createJobFromTicket(Unknown Source) ~[?:?]
        ...
        Suppressed: org.jboss.ejb.client.RequestSendFailedException: Error in connecting to Destination @remote+http://localhost:8080 : Please check if the client and server are configured to use the same protocol and ports.
                at org.jboss.ejb.protocol.remote.RemoteEJBReceiver$1.handleFailed(RemoteEJBReceiver.java:112) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.protocol.remote.RemoteEJBReceiver$1.handleFailed(RemoteEJBReceiver.java:78) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoFuture$HandlingNotifier.notify(IoFuture.java:215) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:720) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoUtils$2.execute(IoUtils.java:71) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture.runNotifier(AbstractIoFuture.java:693) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.doNotify(AbstractIoFuture.java:267) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.notifyFailed(AbstractIoFuture.java:253) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture.setException(AbstractIoFuture.java:595) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.FutureResult.setException(FutureResult.java:85) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.EndpointImpl$3.handleFailed(EndpointImpl.java:512) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.EndpointImpl$3.handleFailed(EndpointImpl.java:506) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoFuture$HandlingNotifier.notify(IoFuture.java:215) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:720) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoUtils$2.execute(IoUtils.java:71) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture.runNotifier(AbstractIoFuture.java:693) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.doNotify(AbstractIoFuture.java:267) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.notifyFailed(AbstractIoFuture.java:253) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture.setException(AbstractIoFuture.java:595) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.FutureResult.setException(FutureResult.java:85) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.ConnectionInfo$1.handleFailed(ConnectionInfo.java:322) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.ConnectionInfo$1.handleFailed(ConnectionInfo.java:316) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoFuture$HandlingNotifier.notify(IoFuture.java:215) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:720) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoUtils$2.execute(IoUtils.java:71) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture.runNotifier(AbstractIoFuture.java:693) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.doNotify(AbstractIoFuture.java:267) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.notifyFailed(AbstractIoFuture.java:253) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.notifyFailed(AbstractIoFuture.java:254) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture.setException(AbstractIoFuture.java:595) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.FutureResult.setException(FutureResult.java:85) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.EndpointImpl$4.setException(EndpointImpl.java:620) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoUtils$ResultNotifier.handleFailed(IoUtils.java:721) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoUtils$ResultNotifier.handleFailed(IoUtils.java:714) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoFuture$HandlingNotifier.notify(IoFuture.java:215) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:720) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.IoUtils$2.execute(IoUtils.java:71) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture.runNotifier(AbstractIoFuture.java:693) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.doNotify(AbstractIoFuture.java:267) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.notifyFailed(AbstractIoFuture.java:253) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$NotifierState.notifyFailed(AbstractIoFuture.java:254) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture$CancellableState.notifyFailed(AbstractIoFuture.java:330) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.AbstractIoFuture.setException(AbstractIoFuture.java:595) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.FutureResult.setException(FutureResult.java:85) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.remote.RemoteConnection.handleException(RemoteConnection.java:121) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.remote.RemoteConnection.handleException(RemoteConnection.java:104) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:445) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:244) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.nio.WorkerThread.run(WorkerThread.java:591) ~[jboss-client.jar:26.1.1.Final]
        Caused by: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed:
   JBOSS-LOCAL-USER: javax.security.sasl.SaslException: JBOSS-LOCAL-USER: Server rejected authentication
                at org.jboss.remoting3.remote.ClientConnectionOpenListener.allMechanismsFailed(ClientConnectionOpenListener.java:109) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:445) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:244) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89) ~[jboss-client.jar:26.1.1.Final]
                at org.xnio.nio.WorkerThread.run(WorkerThread.java:591) ~[jboss-client.jar:26.1.1.Final]
                at ...asynchronous invocation...(Unknown Source) ~[?:?]
                at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:599) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:565) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.ConnectionInfo$None.getConnection(ConnectionInfo.java:82) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.ConnectionInfo.getConnection(ConnectionInfo.java:55) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.EndpointImpl.doGetConnection(EndpointImpl.java:499) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.EndpointImpl.getConnectedIdentity(EndpointImpl.java:445) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.UncloseableEndpoint.getConnectedIdentity(UncloseableEndpoint.java:52) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.remoting3.Endpoint.getConnectedIdentity(Endpoint.java:123) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.getConnection(RemoteEJBReceiver.java:202) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.processInvocation(RemoteEJBReceiver.java:140) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:499) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocation(RemotingEJBClientInterceptor.java:52) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:514) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocation(TransactionPostDiscoveryInterceptor.java:82) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:514) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocation(DiscoveryEJBClientInterceptor.java:104) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:514) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocation(NamingEJBClientInterceptor.java:75) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:514) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.AuthenticationContextEJBClientInterceptor.lambda$handleInvocation$0(AuthenticationContextEJBClientInterceptor.java:45) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.AuthenticationContextEJBClientInterceptor.call(AuthenticationContextEJBClientInterceptor.java:59) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.AuthenticationContextEJBClientInterceptor.handleInvocation(AuthenticationContextEJBClientInterceptor.java:44) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:514) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:205) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:514) ~[jboss-client.jar:26.1.1.Final]
                at org.wildfly.common.context.Contextual.runExConsumer(Contextual.java:203) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequestInitial(EJBClientInvocationContext.java:341) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:178) ~[jboss-client.jar:26.1.1.Final]
                at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:116) ~[jboss-client.jar:26.1.1.Final]
                ...
                Suppressed: javax.security.sasl.SaslException: JBOSS-LOCAL-USER: Server rejected authentication
                        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Authentication.handleEvent(ClientConnectionOpenListener.java:760) ~[jboss-client.jar:26.1.1.Final]
                        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Authentication.handleEvent(ClientConnectionOpenListener.java:602) ~[jboss-client.jar:26.1.1.Final]
                        at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) ~[jboss-client.jar:26.1.1.Final]
                        at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66) ~[jboss-client.jar:26.1.1.Final]
                        at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89) ~[jboss-client.jar:26.1.1.Final]
                        at org.xnio.nio.WorkerThread.run(WorkerThread.java:591) ~[jboss-client.jar:26.1.1.Final]

After long research I found out the reason: The used jboss-client.jar file. Just using the old one from Wildfly 26.0.0 folder bin/client with a file size of 24.8 kb is working, using the new one from Wildfy 26.1.1 with a file size of 19.7 kb produces the upper exception. Yes, I do not use maven, I use the jboss-client.jar, delivered with Wildfly.

But I am still confused. Has anyone else such problems? Is this a known issue? Can I just patch my client with the old jar file? Well, it's better than the new one anyhow. Or is all working for other people and I do some other strange stuff here, which is part of the problem?

Until now I did not take the effort of writing a small example. But I compared my old code to tutorials and all looks fine so far.


Solution

  • OK, this is an official bug of Wildfly and seems to be fixed with version 26.1.2. Details see here: red hat issue