Improve handling of inaccessible remote server [mgmt]
-----------------------------------------------------
Key: JBIDE-18907
URL:
https://issues.jboss.org/browse/JBIDE-18907
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: server
Affects Versions: 4.2.1.CR1
Reporter: Martin Malina
Assignee: Rob Stryker
Fix For: 4.3.0.Alpha1
Attachments: remote-connection-error.png
With JBIDE-18513, it is now possible to set up a server that does not require any runtime
at all (local or remote). The server setup is: remote, management operations, externally
managed, no local runtime.
When I tried it today, I started the server on the remote machine and then marked the
server in eclipse as started. Then I wanted to deploy a project and got an error:
!remote-connection-error.png!
The underlying error is:
{code}
!ENTRY org.jboss.ide.eclipse.as.core 4 0 2014-12-09 13:37:52.037
!MESSAGE JBossTools is unable to verify that the server is up and responsive.
!STACK 0
org.jboss.ide.eclipse.as.management.core.JBoss7ManangerException: java.io.IOException:
java.net.ConnectException: JBAS012144: Could not connect to http-remoting://MARVIN:9990.
The connection timed out
at
org.jboss.ide.eclipse.as.internal.management.wildfly8.Wildfly8Manager.execute(Wildfly8Manager.java:333)
at
org.jboss.ide.eclipse.as.internal.management.wildfly8.Wildfly8Manager.getServerState(Wildfly8Manager.java:263)
at
org.jboss.ide.eclipse.as.internal.management.wildfly8.Wildfly8ManagerService.getServerState(Wildfly8ManagerService.java:142)
at
org.jboss.ide.eclipse.as.management.core.JBoss7ManagerServiceProxy.getServerState(JBoss7ManagerServiceProxy.java:71)
at
org.jboss.tools.as.core.server.controllable.subsystems.internal.ManagementPublishController.isRunning(ManagementPublishController.java:113)
at
org.jboss.tools.as.core.server.controllable.subsystems.internal.ManagementPublishController.canPublishInternal(ManagementPublishController.java:136)
at
org.jboss.tools.as.core.server.controllable.subsystems.internal.ManagementPublishController.publishStart(ManagementPublishController.java:152)
at
org.jboss.tools.as.core.server.controllable.internal.DeployableServerBehavior.publishStart(DeployableServerBehavior.java:104)
at
org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:942)
at
org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3157)
at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.io.IOException: java.net.ConnectException: JBAS012144: Could not connect
to http-remoting://MARVIN:9990. The connection timed out
at
org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeForResult(AbstractModelControllerClient.java:129)
at
org.jboss.as.controller.client.impl.AbstractModelControllerClient.execute(AbstractModelControllerClient.java:71)
at
org.jboss.ide.eclipse.as.internal.management.wildfly8.Wildfly8Manager.execute(Wildfly8Manager.java:322)
... 12 more
Caused by: java.net.ConnectException: JBAS012144: Could not connect to
http-remoting://MARVIN:9990. The connection timed out
at
org.jboss.as.protocol.ProtocolConnectionUtils.connectSync(ProtocolConnectionUtils.java:120)
at
org.jboss.as.protocol.ProtocolConnectionManager$EstablishingConnection.connect(ProtocolConnectionManager.java:256)
at
org.jboss.as.protocol.ProtocolConnectionManager.connect(ProtocolConnectionManager.java:70)
at
org.jboss.as.protocol.mgmt.FutureManagementChannel$Establishing.getChannel(FutureManagementChannel.java:204)
at
org.jboss.as.controller.client.impl.RemotingModelControllerClient.getOrCreateChannel(RemotingModelControllerClient.java:148)
at
org.jboss.as.controller.client.impl.RemotingModelControllerClient$1.getChannel(RemotingModelControllerClient.java:67)
at
org.jboss.as.protocol.mgmt.ManagementChannelHandler.executeRequest(ManagementChannelHandler.java:117)
at
org.jboss.as.protocol.mgmt.ManagementChannelHandler.executeRequest(ManagementChannelHandler.java:92)
at
org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeRequest(AbstractModelControllerClient.java:236)
at
org.jboss.as.controller.client.impl.AbstractModelControllerClient.execute(AbstractModelControllerClient.java:141)
at
org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeForResult(AbstractModelControllerClient.java:127)
... 14 more
{code}
It turned out that I forgot to setup the management port when I started the server on the
server - I needed to add {code}-Djboss.bind.address.management=marvin{code}. With this it
worked.
My suggestion is that the tooling could check if the connection can be established when
you press Start on the server.
But it's just a suggestion - feel free to dismiss this idea ;)