首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

用hudson的hudson-deploy插件,没法发布到端口号太大的jboss4.2.3.GA

2014-07-13 
用hudson的hudson-deploy插件,无法发布到端口号太大的jboss4.2.3.GA我们的CI工具使用的是hudson,想把构建

用hudson的hudson-deploy插件,无法发布到端口号太大的jboss4.2.3.GA
我们的CI工具使用的是hudson,想把构建后得到的.war发布到容器里,所以就选了hudson-deploy插件

环境如下:

hudson-2.2.1
Hudson Deploy Plugin 1.8
maven 3.0.4
jboss 4.2.3.GA

配置如下:



构建成功,但是发布时报错,错误信息是:

Caused by: java.lang.IllegalArgumentException: port out of range:117200
at java.net.InetSocketAddress.<init>(InetSocketAddress.java:118)
at org.codehaus.cargo.container.jboss.JBoss4xRemoteDeployer.buildSocketAddressForDeployableServer(JBoss4xRemoteDeployer.java:269)
at org.codehaus.cargo.container.jboss.JBoss4xRemoteDeployer.<init>(JBoss4xRemoteDeployer.java:133)
at org.codehaus.cargo.container.jboss.JBoss4xRemoteDeployer.<init>(JBoss4xRemoteDeployer.java:117)
... 27 more

可以看到,我配置的jboss端口是17200,但是上面错误信息里却说117200超过范围,多了一个“1”

尝试把端口号改成8080,发布就成功了。或者使用tomcat来发布,无论端口号是17200还是8080都没有问题

于是下载了hudson-deploy的源码,调试一下,发现原因是以下代码:


相关常量如下:
configuration.getPropertyValue(ServletPropertySet.PORT);

则是返回我配置的端口号,这里是17200

所以最后portStr就变成了"1"+"17200"="117200",超过了端口号的最大限制65535而报错

所以如果我配置的端口号是8080,这里就会是18080,不会报错

如果目标容器是tomcat,则不会走进这段代码,也不会报错

原因找到了,不过没有找到解决的办法。如果是用原生的maven-cargo-plugin插件,我知道可以在pom里配置cargo.jboss.remotedeploy.port参数

但是现在用的是hudson-deploy插件,我试了一整天,也没有找到能让我配置这个参数的地方。包括在hudson里配置全局参数,在job里配置-D参数,在windows里配置环境变量,全部没用

因为我们的容器和端口号是不能改的,所以最后只好放弃了hudson-deploy插件,改用原生的maven-cargo-plugin来自动部署了

不过感觉hudson-deploy应该不会这么弱智吧,应该还是我自己用得不对。不知道大家有没有办法解决这个问题?

热点排行