部署的情况如下
一台实际的机器,一个jboss实例,运行多个应用,每个应用都处理根目录(/)的请求。由不同的<virtual-host>来区分。
这个配置是要求写在每个应用的jboss-web.xml里的。
这样有一个问题,如果我们的自动构建程序需要吧应用部署到不同的站点(生产环境和测试环境使用不同的域名),那就要求每个部署中的jboss-web.xml内容是不同的,但是一个war包应该做成一个整体,拷贝到哪里都是可用的根据jboss4guide 第9.5小节,我们可以吧这个配置写到ear文件中。经过试验此路不通
也许第六小节更给力一些,下面是在本地跑的例子
我们需要做如下配置
1.把域名映射到本地
在C:\Windows\System32\drivers\etc\hosts中增加如下行 127.0.0.1 hostme.myhost.com
2.在jboss中增加虚拟主机
在文件<jboss-home>\server\<deploy-dir>\deploy\<deploy>.sar\server.xml中新加一个Host元素
<Host name="hostme" autoDeploy="false"
deployOnStartup="false" deployXML="false">
<Alias>hostme.myhost.com</Alias>
</Host>
3.在应用的WEB-INF目录下包含jobss-web.xml,内容如下
<jboss-web>
<context-root>/</context-root>
<virtual-host>hostme</virtual-host>
</jboss-web>
4.访问 http://hostme.myhost.com
注意3)中的<virtual-host>和2)中的Host.name保持一致即可。Alias就是在浏览器中输入的域名
希望大家把在持续集成中遇到的问题和解决方案拿来讨论。