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