JBAS012144连接超时

问题描述 投票:1回答:3

当我尝试使用Maven和Jenkins在JBoss中部署或取消部署我的应用程序(EAR)时,我收到以下错误:

INFO: JBoss Remoting version 3.2.12.GA
[DEBUG] 
java.io.IOException: java.net.ConnectException: JBAS012144: Could not     
connect to remote://192.168.1.8:10099. 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.plugin.common.AbstractServerConnection.isDomainServer(AbstractServerConnection.java:234)
at org.jboss.as.plugin.common.AbstractServerConnection.getClient(AbstractServerConnection.java:156)
...

考虑到以下jboss配置,我的JBoss服务器正在侦听端口10099(9999 + 100):

<socket-binding-group 
    name="standard-sockets" 
    default-interface="public" 
    port-offset="${jboss.socket.binding.port-offset:100}">
    <socket-binding 
         name="management-native" 
         interface="management"
         port="${jboss.management.native.port:9999}"/>

Maven插件配置:

<plugin>
    <groupId>org.jboss.as.plugins</groupId>
    <artifactId>jboss-as-maven-plugin</artifactId>
    <version>7.6.Final</version>
    <inherited>true</inherited>
    <configuration>
    <!-- <skip>true</skip> -->
    <hostname>${deploy.jboss.host}</hostname>
    <port>${deploy.jboss.port}</port>
    <username>${deploy.jboss.user}</username>
    <password>${deploy.jboss.password}</password>
    <filename>fitness-${stage}-${app.server}.ear</filename>
    <name>fitness-${stage}-${app.server}.ear</name>
     <skip>${skip.deployment}</skip>
     <!--  Logging  ??? not working-->
      <execute-commands>
            <commands>
                 <command>/subsystem=logging/file-handler=debug:add(level=DEBUG,autoflush=true,file={"relative-to"=>"jboss.server.log.dir", "path"=>"jenkins-deployment.log"})
                 </command>
                 <command>/subsystem=logging/logger=org.jboss.as:add(level=DEBUG,handlers=[debug])
                 </command>
            </commands>
        </execute-commands>
       </configuration>                     
       <executions>
            <execution>
                <id>deploy-application</id>
                <goals>
                    <goal>deploy</goal>
                </goals>
            </execution>                    
            <execution>
                <id>undeploying-all-application</id>
                <goals>
                    <goal>undeploy</goal>
                </goals>
                <configuration>
                    <match-pattern>fitness-.*</match-pattern>
                    <matchPatternStrategy>all</matchPatternStrategy>
                </configuration>
            </execution>
        </executions>                       
</plugin>

使用以下变量:

  • deploy.JBoss.host = 192.168.1.8
  • deploy.jboss.port = 10099

这是我的配置:

  • 操作系统:Ubuntu 13.04
  • Java:1.6.0_26
  • JBoss:7.1.1.final
  • Maven:3.0.3
  • Jboss-as-maven-plugin:7.6.final

Jenkins和目标jboss服务器正在运行由ip 192.168.1.8标识的同一台机器

我自己的诊断:

如果我跑

sudo netstat -nlp | grep :10099

我明白了:

tcp        0      0 0.0.0.0:10099           0.0.0.0:*               LISTEN      25475/java  

25475是我的Jboss实例。似乎JBoss正在聆听正确的端口。

我可以使用CLI使用另一个实例进行连接:

sh jboss-cli.sh controller=192.168.1.8:10099 

在此先感谢您的帮助

java maven jenkins jboss
3个回答
1
投票

我有同样的问题,我解决了它设置更高的超时值。例如:

    <plugin>
        <groupId>org.jboss.as.plugins</groupId>
        <artifactId>jboss-as-maven-plugin</artifactId>
        <version>7.9.Final</version>
        <inherited>true</inherited>
        <configuration>
            <hostname>${jboss.hostname}</hostname>
            <port>${jboss.port}</port>
            <username>${jboss.user}</username>
            <password>${jboss.pass}</password>
....
            <timeout>30000</timeout>
....
        </configuration>
    </plugin>

默认“超时”值为5000毫秒。您可以尝试使用更高的值,如30000ms。它对我有用。

编辑:正如Pedro所说,另一种选择可以通过命令行参数将“超时”传递给maven。例如。 -Djboss-as.timeout = 30000


0
投票

问题是JDK 7相关。我的jenkins服务器使用的是Java 1.7如果你想使用jdk 7,你需要使用以下参数:

-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.KQueueSelectorProvider

0
投票

我有类似的问题,但修复方法不同,它可能对某人有所帮助。我不得不将maven插件改为以下插件:

<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <version>1.1.0.Alpha11</version>
</plugin>
© www.soinside.com 2019 - 2024. All rights reserved.