问题:
RMI的日志探测报错 返回IP和入参的IP不一致 并且报错 no route to host
情况分析:
根据日志打印可以定位到 报错位置 这里为调用java提供的API
IRmiService rmiService = (IRmiService) Naming.lookup(rmiUrl);
怀疑服务器切换过IP,返回的IP是切换前的IP,当时就觉得是切换IP是否存在问题 执行
hostname -i 发现IP对的 毕竟当前应用正在用新的IP运行着
在网上搜索可以发现大部分给的解决方案如下 在代码中增加
System.setProperty("java.rmi.server.hostname",正确ip) 即可,但是我们应用原本就可以用 应该不存在该问题 并且代码中也未搜索到该设置的相关代码和配置;并且搜到的报错和我遇见的也不一样
最后:
当时认为这个应该要配置,找到配置的地方先看下,后来了解到第二种解决方式,启动项目时配置jvm参数,当前可能已经配置过但是服务器上切换IP未修改
linux执行指令 jps -lv查看,果然还是原本IP
如何修改:
在apache-tomcat-7.0.52/bin下的setenv.sh文件修改IP为最新的IP即可
sed -i "s/10.1.1.101/10.1.1.145/g" config.properties
反思:
问题不难,主要是思路开始有问题,之前未用过RMI,其实在发现有个配置IP的地方就应该意识到是否配置异常
标签:返回,IP,配置,host,报错,RMI From: https://www.cnblogs.com/xiaoTWO/p/17098462.html