如何穿过防火墙调用JBoss

如何穿过防火墙调用JBoss(转)

1.首先修改jboss-service.xml,在ejb端口1098附近,修改CallByValue值为true
<attribute name="CallByValue">true</attribute>

2.然后修改ejb3.deployer中jboss-service.xml文件,主要是添加域名到3873的调用中
   <mbean code="org.jboss.remoting.transport.Connector"
          xmbean-dd="org/jboss/remoting/transport/Connector.xml"
          name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3">
      <depends>jboss.aop:service=AspectDeployer</depends>
      <attribute name="Configuration">
    <config>
     <invoker transport="socket">
     <attribute name="numAcceptThreads">1</attribute>
     <attribute name="maxPoolSize">300</attribute>
     <attribute name="clientMaxPoolSize" isParam="true">50</attribute>
     <attribute name="timeout" isParam="true">60000</attribute>
     <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
     <attribute name="serverBindPort">3873</attribute>
     <!-- that's the important setting -->
     <attribute name="clientConnectAddress">10.104.46.119</attribute>
     <attribute name="clientConnectPort">3873</attribute>
     <attribute name="backlog">200</attribute>
     </invoker>
     <handlers>
     <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
     </handlers>
    </config>
      </attribute>
   </mbean>

3.设置java启动选项,添加rmi-server的外部地址和禁用本地域名解析到启动脚本
Windows脚本例:set JAVA_OPTS=-Djava.rmi.server.hostname= external IP -Djava.rmi.server.useLocalHostname=false
Unix脚本例:添加到jboss启动配置文件run.conf中即可。

4.用run.sh --host=192.168.1.25启动服务或添加--host=192.168.1.25到启动脚本。

1.在使用Jboss 4.2GA 遇到的问题. 以下是以default 模式启动的Jboss .启动参数 -c default /all
(1). localhost可以访问与本机IP不能访问
解决方式:
修改JBOSS_HOME"server"default"deploy"jboss-web.deployer下的server.xml 将address改为0.0.0.0或者你的实际IP 重启 JBOSS 然后就可以通过ip访问。

(3)在windows 客户端调用 Linux 服务端 遇到org.jboss.remoting.CannotConnectException: Can not get connection to server. Problem establishing socket connection for InvokerLocator [socket://127.0.0.1:3873/]
解决方法: 修改 JBOSS_HOME/server/default/deploy/ejb3.deployer/META-INF/jboss-services.xml 文件中的${jboss.bind.address}:3873 为linux_home_ip:3873

以上两个问题也可以通过以下设置解决:
For Windows, use
run.bat -b 0.0.0.0

for Linux use
run.sh -b 0.0.0.0

你可能感兴趣的:(如何穿过防火墙调用JBoss)