2015-03-16 1 views
0

J'ai essayé de configurer le déploiement à distance d'une oreille à l'aide de maven, mais cela échoue car le script jboss-cli.bat ne peut pas se connecter au serveur. Il échoue avec la trace de la pile:Jboss-CLI ne se connecte pas à distance

C:\Users\pstephens\Programming\jboss-eap-6.2\jboss-eap-6.2\bin>jboss-cli.bat --controller=172.22.2.29:9999 --connect --user=pstephens --password=####### 
org.jboss.as.cli.CliInitializationException: Failed to connect to the controller 
    at org.jboss.as.cli.impl.CliLauncher.initCommandContext(CliLauncher.java:284) 
    at org.jboss.as.cli.impl.CliLauncher.main(CliLauncher.java:262) 
    at org.jboss.as.cli.CommandLineMain.main(CommandLineMain.java:34) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.jboss.modules.Module.run(Module.java:292) 
    at org.jboss.modules.Main.main(Main.java:455) 
Caused by: org.jboss.as.cli.CommandLineException: The controller is not available at 172.22.2.29:9990 
    at org.jboss.as.cli.impl.CommandContextImpl.tryConnection(CommandContextImpl.java:969) 
    at org.jboss.as.cli.impl.CommandContextImpl.connectController(CommandContextImpl.java:808) 
    at org.jboss.as.cli.impl.CommandContextImpl.connectController(CommandContextImpl.java:784) 
    at org.jboss.as.cli.impl.CliLauncher.initCommandContext(CliLauncher.java:282) 
    ... 8 more 
Caused by: java.io.IOException: java.net.ConnectException: JBAS012144: Could not connect to remote://172.22.2.29: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.as.cli.impl.CommandContextImpl.tryConnection(CommandContextImpl.java:947) 
    ... 11 more 
Caused by: java.net.ConnectException: JBAS012144: Could not connect to remote://172.22.2.29:9990. The connection timed out 
    at org.jboss.as.protocol.ProtocolConnectionUtils.connectSync(ProtocolConnectionUtils.java:131) 
    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.cli.impl.CLIModelControllerClient.getOrCreateChannel(CLIModelControllerClient.java:160) 
    at org.jboss.as.cli.impl.CLIModelControllerClient$2.getChannel(CLIModelControllerClient.java:120) 
    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) 
    ... 13 more 

Mon standalone.xml a les paramètres suivants:

<interfaces> 
    <interface name="management"> 
     <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> 
    </interface> 
    <interface name="public"> 
     <inet-address value="${jboss.bind.address:127.0.0.1}"/> 
    </interface> 
    <interface name="unsecure"> 
     <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> 
    </interface> 
</interfaces> 

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> 
    <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/> 
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> 
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/> 
    <socket-binding name="ajp" port="8009"/> 
    <socket-binding name="http" port="8080"/> 
    <socket-binding name="https" port="8443"/> 
    <socket-binding name="remoting" port="4447"/> 
    <socket-binding name="txn-recovery-environment" port="4712"/> 
    <socket-binding name="txn-status-manager" port="4713"/> 
    <outbound-socket-binding name="mail-smtp"> 
     <remote-destination host="localhost" port="25"/> 
    </outbound-socket-binding> 
</socket-binding-group> 

qui sont assez standard et je commence avec la commande:

(sudo) ./standalone.sh -b=172.22.2.29 -bmanagement=172.22.2.29 

qui lie l'instance jboss au serveur ip. Le cli fonctionne correctement s'il est exécuté localement sur le serveur, mais échoue lorsqu'il est exécuté à distance. J'ai longuement étudié les problèmes de pare-feu et de port et je ne vois rien de fâcheux. nmap confirme que 172.22.2.29:9999 est ouvert et visible depuis ma machine. Lorsque la connexion est tentée, il n'y a aucune entrée de journal du serveur jboss. Ce que j'ai essayé: (1) En examinant les journaux du pare-feu pour rechercher une connexion bloquée, je suis convaincu qu'il n'y a aucun problème avec les pare-feu ou les paramètres de port. (2) Utiliser des installations propres de divers éléments, y compris JRE, jboss, etc. (3) Modification des liaisons de port en cas de conflit avec un processus non encore identifié. Le seul autre indice intéressant que j'ai découvert est que si je regarde les pare-feu sur le serveur en temps réel, ils montrent une connexion TCP reçue et établie, seulement pour recevoir immédiatement une demande de suppression, alors que je regarde netstat mon ordinateur montre qu'il croit que la connexion a été établie avec le port 9999. Cela continue tant que jboss-cli est en cours d'exécution, même après avoir levé une exception. J'espere qu'il y a une explication que j'ai oubliee, et l'un d'entre vous peut me le signaler.

Reste standalone.xml ci-dessous:

<management> 
    <security-realms> 
     <security-realm name="ManagementRealm"> 
      <authentication> 
       <local default-user="$local"/> 
       <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/> 
      </authentication> 
      <authorization map-groups-to-roles="false"> 
       <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/> 
      </authorization> 
     </security-realm> 
     <security-realm name="ApplicationRealm"> 
      <authentication> 
       <local default-user="$local" allowed-users="*"/> 
       <properties path="application-users.properties" relative-to="jboss.server.config.dir"/> 
      </authentication> 
      <authorization> 
       <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/> 
      </authorization> 
     </security-realm> 
    </security-realms> 
    <audit-log> 
     <formatters> 
      <json-formatter name="json-formatter"/> 
     </formatters> 
     <handlers> 
      <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/> 
     </handlers> 
     <logger log-boot="true" log-read-only="false" enabled="false"> 
      <handlers> 
       <handler name="file"/> 
      </handlers> 
     </logger> 
    </audit-log> 
    <management-interfaces> 
     <native-interface security-realm="ManagementRealm"> 
      <socket-binding native="management-native"/> 
     </native-interface> 
     <http-interface security-realm="ManagementRealm"> 
      <socket-binding http="management-http"/> 
     </http-interface> 
    </management-interfaces> 
    <access-control provider="simple"> 
     <role-mapping> 
      <role name="SuperUser"> 
       <include> 
        <user name="$local"/> 
        <user realm="ManagementRealm" name="pstephens"/> 
       </include> 
      </role> 
      <role name="Administrator"> 
       <include> 
        <user realm="ManagementRealm" name="pstephens"/> 
       </include> 
      </role> 
      <role name="Auditor"> 
       <include> 
        <user realm="ManagementRealm" name="pstephens"/> 
       </include> 
      </role> 
      <role name="Deployer"> 
       <include> 
        <user realm="ManagementRealm" name="pstephens"/> 
       </include> 
      </role> 
      <role name="Operator"> 
       <include> 
        <user realm="ManagementRealm" name="pstephens"/> 
       </include> 
      </role> 
      <role name="Monitor"> 
       <include> 
        <user realm="ManagementRealm" name="pstephens"/> 
       </include> 
      </role> 
      <role name="Maintainer"> 
       <include> 
        <user realm="ManagementRealm" name="pstephens"/> 
       </include> 
      </role> 
     </role-mapping> 
    </access-control> 
</management> 

<profile> 
    <subsystem xmlns="urn:jboss:domain:logging:1.3"> 
     <console-handler name="CONSOLE"> 
      <level name="DEBUG"/> 
      <formatter> 
       <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
      </formatter> 
     </console-handler> 
     <custom-handler name="com.bmt.logging" class="com.bmt.logging.JdbcHandler" module="com.bmt.logging"> 
      <level name="DEBUG"/> 
      <formatter> 
       <pattern-formatter pattern="%d{yyyy/MM/dd-HH:mm:ss.SSS} $%p $%c $%t $%X{ip} $%s"/> 
      </formatter> 
      <properties> 
       <property name="driverClassName" value="org.postgresql.Driver"/> 
       <property name="insertStatement" value="INSERT INTO logtable (timestamp, loglevel, logcat, threadname, callingip, message) VALUES (?, ?, ?, ?, ?, ?)"/> 
       <property name="password" value="########"/> 
       <property name="username" value="postgres"/> 
       <property name="jdbcUrl" value="jdbc:postgresql://172.22.2.29:5432/ContainSssLog"/> 
      </properties> 
     </custom-handler> 
     <periodic-rotating-file-handler name="FILE" autoflush="true"> 
      <formatter> 
       <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
      </formatter> 
      <file relative-to="jboss.server.log.dir" path="server.log"/> 
      <suffix value=".yyyy-MM-dd"/> 
      <append value="true"/> 
     </periodic-rotating-file-handler> 
     <logger category="com.arjuna"> 
      <level name="WARN"/> 
     </logger> 
     <logger category="org.apache.tomcat.util.modeler"> 
      <level name="WARN"/> 
     </logger> 
     <logger category="org.jboss.as.config"> 
      <level name="DEBUG"/> 
     </logger> 
     <logger category="sun.rmi"> 
      <level name="WARN"/> 
     </logger> 
     <logger category="jacorb"> 
      <level name="WARN"/> 
     </logger> 
     <logger category="jacorb.config"> 
      <level name="ERROR"/> 
     </logger> 
     <root-logger> 
      <level name="INFO"/> 
      <handlers> 
       <handler name="CONSOLE"/> 
       <handler name="FILE"/> 
       <handler name="com.bmt.logging"/> 
      </handlers> 
     </root-logger> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:datasources:1.1"> 
     <datasources> 
      <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> 
       <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> 
       <driver>h2</driver> 
       <security> 
        <user-name>sa</user-name> 
        <password>sa</password> 
       </security> 
      </datasource> 
      <drivers> 
       <driver name="h2" module="com.h2database.h2"> 
        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
       </driver> 
      </drivers> 
     </datasources> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1"> 
     <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:ee:1.1"> 
     <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> 
     <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:ejb3:1.4"> 
     <session-bean> 
      <stateless> 
       <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/> 
      </stateless> 
      <stateful default-access-timeout="5000" cache-ref="simple"/> 
      <singleton default-access-timeout="5000"/> 
     </session-bean> 
     <pools> 
      <bean-instance-pools> 
       <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> 
       <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> 
      </bean-instance-pools> 
     </pools> 
     <caches> 
      <cache name="simple" aliases="NoPassivationCache"/> 
      <cache name="passivating" passivation-store-ref="file" aliases="SimpleStatefulCache"/> 
     </caches> 
     <passivation-stores> 
      <file-passivation-store name="file"/> 
     </passivation-stores> 
     <async thread-pool-name="default"/> 
     <timer-service thread-pool-name="default"> 
      <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/> 
     </timer-service> 
     <remote connector-ref="remoting-connector" thread-pool-name="default"/> 
     <thread-pools> 
      <thread-pool name="default"> 
       <max-threads count="10"/> 
       <keepalive-time time="100" unit="milliseconds"/> 
      </thread-pool> 
     </thread-pools> 
     <default-security-domain value="other"/> 
     <default-missing-method-permissions-deny-access value="true"/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:infinispan:1.4"> 
     <cache-container name="web" aliases="standard-session-cache" default-cache="local-web" module="org.jboss.as.clustering.web.infinispan"> 
      <local-cache name="local-web" batching="true"> 
       <file-store passivation="false" purge="false"/> 
      </local-cache> 
     </cache-container> 
     <cache-container name="hibernate" default-cache="local-query" module="org.jboss.as.jpa.hibernate:4"> 
      <local-cache name="entity"> 
       <transaction mode="NON_XA"/> 
       <eviction strategy="LRU" max-entries="10000"/> 
       <expiration max-idle="100000"/> 
      </local-cache> 
      <local-cache name="local-query"> 
       <transaction mode="NONE"/> 
       <eviction strategy="LRU" max-entries="10000"/> 
       <expiration max-idle="100000"/> 
      </local-cache> 
      <local-cache name="timestamps"> 
       <transaction mode="NONE"/> 
       <eviction strategy="NONE"/> 
      </local-cache> 
     </cache-container> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/> 
    <subsystem xmlns="urn:jboss:domain:jca:1.1"> 
     <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/> 
     <bean-validation enabled="true"/> 
     <default-workmanager> 
      <short-running-threads> 
       <core-threads count="50"/> 
       <queue-length count="50"/> 
       <max-threads count="50"/> 
       <keepalive-time time="10" unit="seconds"/> 
      </short-running-threads> 
      <long-running-threads> 
       <core-threads count="50"/> 
       <queue-length count="50"/> 
       <max-threads count="50"/> 
       <keepalive-time time="10" unit="seconds"/> 
      </long-running-threads> 
     </default-workmanager> 
     <cached-connection-manager/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:jdr:1.0"/> 
    <subsystem xmlns="urn:jboss:domain:jmx:1.3"> 
     <expose-resolved-model/> 
     <expose-expression-model/> 
     <remoting-connector/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:jpa:1.1"> 
     <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:jsf:1.0"/> 
    <subsystem xmlns="urn:jboss:domain:mail:1.1"> 
     <mail-session jndi-name="java:jboss/mail/Default"> 
      <smtp-server outbound-socket-binding-ref="mail-smtp"/> 
     </mail-session> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:naming:1.4"> 
     <remote-naming/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:pojo:1.0"/> 
    <subsystem xmlns="urn:jboss:domain:remoting:1.1"> 
     <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm"/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:resource-adapters:1.1"/> 
    <subsystem xmlns="urn:jboss:domain:sar:1.0"/> 
    <subsystem xmlns="urn:jboss:domain:security:1.2"> 
     <security-domains> 
      <security-domain name="other" cache-type="default"> 
       <authentication> 
        <login-module code="Remoting" flag="optional"> 
         <module-option name="password-stacking" value="useFirstPass"/> 
        </login-module> 
        <login-module code="RealmDirect" flag="required"> 
         <module-option name="password-stacking" value="useFirstPass"/> 
        </login-module> 
       </authentication> 
      </security-domain> 
      <security-domain name="jboss-web-policy" cache-type="default"> 
       <authorization> 
        <policy-module code="Delegating" flag="required"/> 
       </authorization> 
      </security-domain> 
      <security-domain name="jboss-ejb-policy" cache-type="default"> 
       <authorization> 
        <policy-module code="Delegating" flag="required"/> 
       </authorization> 
      </security-domain> 
     </security-domains> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:threads:1.1"/> 
    <subsystem xmlns="urn:jboss:domain:transactions:1.4"> 
     <core-environment> 
      <process-id> 
       <uuid/> 
      </process-id> 
     </core-environment> 
     <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/> 
     <coordinator-environment default-timeout="300"/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:web:1.5" default-virtual-server="default-host" native="false"> 
     <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> 
     <virtual-server name="default-host" enable-welcome-root="true"> 
      <alias name="localhost"/> 
      <alias name="example.com"/> 
     </virtual-server> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:webservices:1.2"> 
     <modify-wsdl-address>true</modify-wsdl-address> 
     <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> 
     <endpoint-config name="Standard-Endpoint-Config"/> 
     <endpoint-config name="Recording-Endpoint-Config"> 
      <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"> 
       <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/> 
      </pre-handler-chain> 
     </endpoint-config> 
     <client-config name="Standard-Client-Config"/> 
    </subsystem> 
    <subsystem xmlns="urn:jboss:domain:weld:1.0"/> 
</profile> 
+0

Pourquoi stacktrace se plaint du port 9990 pendant que vous vous connectez à 9999? – Tair

+0

Une erreur de copier-coller de ma part. Il devrait dire 9999 partout. J'essayais beaucoup de ports différents et j'ai copié la mauvaise trace de la pile. Ils sont tous identiques cependant. –

Répondre

1

La cause de cette erreur est que l'horloge du système sur le serveur ubuntu a eu tort. Cela a provoqué le déchiffrement du protocole tcp lui-même, pour des raisons qui restent obscures, mais probablement parce que le serveur a jugé que la connexion avait été retardée en cours de route et que le client n'écoutait plus à l'autre bout. L'utilisation de l'indicateur --timeout = peut également aider à résoudre cette erreur, car le délai d'attente par défaut de 5 secondes est très court pour les échanges de connexion externes.