自己开发的一套RMI的应用,在Windows平台测试没有问题,但部署到Linux下Client总是不能连接Server.
Server邦定的是0.0.0.0:9000,客户端能够连接,看了下返回结果,发现Proxy中一个Host字段返回值有问题,经常会是 127.0.0.1,这个是由于Server注册时,没有指定邦定IP,结果会返回Hosts中的localhost的IP。通过修改这个IP,就能够使客户端正常访问。
下面是自己写的一段程序,能够修改Host的IP地址。
private static void ChangeHost(Object obj, String host) {
try {
Proxy proxy = (Proxy) obj;
RemoteObjectInvocationHandler handler = (RemoteObjectInvocationHandler) proxy.getInvocationHandler(proxy);
Object o = handler.getRef();
Class c = o.getClass();
Field f = c.getDeclaredField("ref");
f.setAccessible(true);
o = f.get(o);
c = o.getClass();
f = c.getDeclaredField("ep");
f.setAccessible(true);
o = f.get(o);
c = o.getClass();
f = c.getDeclaredField("host");
f.setAccessible(true);
f.set(o, host);
} catch (Exception e) {
logger.fatal("Can't set Host of Remote Object.");
}
}
我使用的是JDK1.6,这种方式可以保证,在服务端不指定邦定IP情况下,正常访问。
分享到:
相关推荐
本实例将深入讲解如何使用Java RMI在Linux环境中启动远程服务,并在Windows环境下进行操作。 首先,理解RMI的基本原理:RMI系统由两部分组成,客户端和服务器端。服务器端暴露远程接口,客户端通过引用这个远程接口...
一个小demo,通过java rmi实现对远程文件夹的控制。包括创建文本文件、修改文本文件、列出文件夹中所有文件、计算文件夹中文件的个数、文件夹。 附有实验教程.md,纪录了一些bug的解决方法。初学者可根据教程进行...
标题 "jdk-8u321-linux-x64.tar.zip" 暗示了这是一个针对Linux平台的Java Development Kit(JDK)版本8u321的压缩文件,且使用了tar和zip...掌握这些知识对于在Linux环境下进行Java开发、部署和运维工作是非常重要的。
标签涉及了"linux 运维 服务器 分布式",这些是与JDK在Linux环境下的应用紧密相关的领域: 1. **Linux运维**:在Linux环境中部署和管理JDK是运维人员的基本技能。他们需要配置Java环境变量,如JAVA_HOME、PATH和...
这些产品和解决方案不仅可以快速部署下一代电信网络,也支持3G无线和IMS(IP Multimedia Subsystem)业务。 IMS是电信行业中的一个重要概念,它旨在通过IP网络提供统一的服务平台,实现不同业务(如语音、数据、...
### Linux下安装JBoss的详细教程 #### 一、引言 JBoss是一个遵循J2EE规范的应用服务器,自项目启动以来,它已从最初的EJB容器发展成为一个全面的Web操作系统,涵盖了J2EE规范中的最新技术。JBoss不仅免费且开源,...
SAP JCo通过Java API提供服务,允许开发人员在Java环境中构建和部署SAP集成解决方案。这包括但不限于: 1. **SAP连接设置**:开发者需要配置SAP系统的连接参数,如系统ID、主机名、端口号、用户名和密码等,以便...
总结来说,在没有DNS的Linux环境下发布ServiceMix,关键在于正确配置IP地址、启动选项以及管理服务的端口。同时,利用 `pom.xml` 文件管理和部署源码,结合ServiceMix提供的工具,可以实现高效的企业服务集成和管理...
9. **日志管理和故障排查**:JBoss的日志文件位于`server`目录下,如`log/server.log`,通过分析日志可以帮助诊断和解决问题。 10. **热部署和自动部署**:`deploy`目录下的应用会自动部署,但可能需要调整`auto-...
在本文中,我们将深入探讨如何在Linux环境下安装ATG 11.1版本。ATG(Application Technology Generator)是Oracle公司的一个电子商务平台,用于构建高度个性化的在线购物体验。以下是一些关键步骤和配置要点: 首先...
exe4j是一款强大的跨平台Java可执行文件生成器,它允许开发者将Java应用程序(包括Swing、SWT/AWT/RMI应用程序以及命令行工具)打包成Windows原生的.exe文件或是Linux、macOS上的可执行文件。这样,最终用户无需安装...
在这个特定的版本"apache-tomcat-5.5.35.tar.gz"中,我们讨论的是针对Linux操作系统的部署。Tomcat 5.5.x系列是较旧的一个版本,但它在当时提供了稳定且功能丰富的Java应用服务器平台。 1. **Tomcat的安装与解压** ...
综上所述,Ehcache集群结合JGroups和RMI提供了强大的分布式缓存解决方案。理解这些组件的工作原理和配置方法对于开发和维护高性能、高可用的应用至关重要。在实际应用中,根据业务需求调整配置,以实现最佳的性能和...
3. 监控与诊断:利用Weblogic提供的监控工具如JMX、WLST和JConsole,实时查看集群状态并进行问题诊断。 六、高可用性与容错性 1. 热备份:设置热备份服务器实例,当主实例故障时自动接管服务。 2. 磁盘共享:确保...
如果仍然存在问题,可尝试重启相关服务,如Planning、EAS和RMI服务,再按照方法1重试。 2. **Planning登陆报错**: - 如果出现“没有应用程序可用”的错误,可能需要重新配置Foundation和Planning服务。 3. **...
本篇文章将详细介绍如何在Windows环境下部署Alfresco 4.2.c版本,并将其内置的Solr服务进行分离部署。 ### 1. 系统环境 确保你的系统满足以下最低配置: - 操作系统:Windows Server或类似支持的Linux发行版 - Java...
在Java开发中,有时我们需要对运行的JAR程序进行一些高级配置,比如调整...这对于优化程序性能、监控系统状态以及解决内存泄漏等问题非常有帮助。确保正确理解和使用这些参数,可以更好地管理和调试Java应用程序。
### WebLogic宕机问题及其解决策略 #### 一、引言 在现代企业级应用部署中,Oracle WebLogic Server作为一款高性能的企业级Java应用服务器,因其稳定性和强大的功能集受到广泛青睐。然而,在实际生产环境中,...
安装过程在Linux平台下分为几个步骤:运行安装脚本命令,系统会解压安装资源,并配置安装程序适应系统环境,随后启动CONSOLE模式安装。在安装过程中,用户会被提示选择安装语言,可以选择英语或简体中文。 安装完成...