急急!!对于spring hibernate jotm tomcat6.0 开发,如何配置分布式事务...
发布网友
发布时间:2024-07-10 05:02
我来回答
共1个回答
热心网友
时间:2024-07-10 08:00
这个问题其实是由rmi服务器端程序造成的。
客户端程序向服务端请求一个对象的时候,返回的stub对象里面包含了服务器的hostname,客户端的后续操作根据这个hostname来连接服务器端。要想知道这个hostname具体是什么值可以在服务器端bash中打入指令:
hostname -i
如果返回的是127.0.0.1,那么你的客户端肯定会抛如标题的异常了。
解决这个问题有两个方式:
1 修改/etc/hosts
找到127.0.0.1 hostxxxxx这样的字样。把127.0.0.1改成真实的,可供其他机器连接的ip。
这样客户端就能得到真实的ip了。
2 在rmi服务器端程序启动脚本中加上两行,显式指定hostname。我的脚本:
hostname=`hostname`
java -cp $CLASSPATH -Djava.rmi.server.codebase=$codebase -Djava.security.policy=$PROJECT_HOME/se_server/conf/se_server.policy -Djava.rmi.server.hostname=$hostname com.abc.server.StartServer > $PROJECT_HOME/se_server/logs/init.log 2>&1 &
不过该方式有个局限,其他机器肯定能识别ip,但是可能无法识别hostname。
当然,你也可以直接写死这个hostname,比如:-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx。 这样最省力,就是少点灵活性.