云端部署JBOSS之穿越网关
--- wolcen@msn.com
缘由:
公司产品使用了JBOSS 4.2.3GA作为应用服务器,并使用了EJB、WebService、JBossMQ等服务器,由于一直运行在局域网中,一切正常。某天,云飘来了,公司要求系统部署到云上,于是问题来,如何访问躲在网关后面的JBOSS呢?
没有办法问百度,问Google,去Redhat找资料。在无数次测试后,有了以下配置文档,并在实际使用中通过。
配置:
网关映射配置
需要映射的端口 | |
端口 | 说明 |
1098 | RMI |
1099 | JNDI |
3873 | DefaultEjb3Connector |
8083 | WebService |
8080 | HTTP |
8093 | JBossMQ |
JBOSS EJB相关修改
文件位置 |
$JBOSS_HOME/server/default/deploy/ejb3.deployer/META-INF/jboss-service.xml |
修改内容 |
(忽略部分内容......) <!-- *** 注释这个 Connector *** <mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"> <depends>jboss.aop:service=AspectDeployer</depends> (忽略部分内容......) </mbean> --> <!-- The following is sample configuration for modifying the Connector *** 使用这个 Connector ,加入属性 clientConnectAddress *** --> <mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"> <depends>jboss.aop:service=AspectDeployer</depends> <attribute name="Configuration"> <config> <invoker transport="socket"> (忽略部分内容......) <!-- 加入属性clientConnectAddress ,并设置为名称引用--> <attribute name="clientConnectAddress">${java.rmi.server.hostname}</attribute> </invoker> (忽略部分内容......) </config> </attribute> </mbean> (忽略部分内容......)
|
|
JBOSS WebService相关修改
文件位置 |
$JBOSS_HOME/server/default/deploy/jbossws.sar/jbossws.beans/META-INF/jboss-beans.xml |
修改内容 |
(忽略部分内容......) <!-- An abstraction of server configuration aspects. --> <bean name="WSServerConfig" class="org.jboss.wsf.stack.jbws.NativeServerConfig"> <property name="mbeanServer"><inject bean="WSMBeanServerLocator" property="mbeanServer"/></property> <!-- 修改webServiceHost为名称引用--> <property name="webServiceHost">${java.rmi.server.hostname}</property> (忽略部分内容......) </bean> (忽略部分内容......) <!-- A subscription manager for WS-Eventing --> <bean name="WSSubscriptionManager" class="org.jboss.ws.extensions.eventing.mgmt.SubscriptionManager"> <!-- 修改bindAddress为名称引用--> <property name="bindAddress">${java.rmi.server.hostname}</property> </bean> (忽略部分内容......)
|
JBOSS JBossMQ相关修改
文件位置 |
$JBOSS_HOME/server//default/deploy/jms/uil2-service.xml |
修改内容 |
(忽略部分内容......) <mbean code="org.jboss.mq.il.uil2.UILServerILService" name="jboss.mq:service=InvocationLayer,type=UIL2"> (忽略部分内容......) <!-- 加入JNDI client address ,并设置为名称引用--> <attribute name="ClientAddress">${java.rmi.server.hostname}</attribute> </mbean> (忽略部分内容......)
|
JBOSS 启动相关修改
运行命令行 加入域名相关参数 | |
$JBOSS_HOME/bin/run.sh -b 192.168.1.250 -Djava.rmi.server.hostname=www.mydomain.net | |
192.168.1.250 | 服务器的IP |
用于访问的域名 |