当我尝试使用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服务器正在侦听端口10099(9999 + 100),考虑到以下jboss配置:
<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>
使用以下变量:
这是我的配置:
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
提前感谢您的帮助
答案 0 :(得分: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>
默认&#34;超时&#34;值是5000毫秒。您可以尝试使用更高的值,如30000ms。它对我有用。
编辑: 正如佩德罗所说,另一个选择可能是超越&#34;超时&#34;通过命令行参数maven。例如。 -Djboss-as.timeout = 30000
答案 1 :(得分:0)
问题与JDK 7有关。我的jenkins服务器使用的是Java 1.7 如果要使用jdk 7,则需要使用以下参数:
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.KQueueSelectorProvider
答案 2 :(得分:0)
我有类似的问题,但修复方法不同,它可能对某人有所帮助。我不得不将maven插件更改为以下内容:
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.1.0.Alpha11</version>
</plugin>