`
stonelee74
  • 浏览: 1295 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Linux下解决RMI部署问题

阅读更多
自己开发的一套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情况下,正常访问。
0
0
分享到:
评论
1 楼 leyen 2012-09-27  
好用,谢谢!

相关推荐

    java远程调用rmi实例

    本实例将深入讲解如何使用Java RMI在Linux环境中启动远程服务,并在Windows环境下进行操作。 首先,理解RMI的基本原理:RMI系统由两部分组成,客户端和服务器端。服务器端暴露远程接口,客户端通过引用这个远程接口...

    Linux远程控制调用rmi

    一个小demo,通过java rmi实现对远程文件夹的控制。包括创建文本文件、修改文本文件、列出文件夹中所有文件、计算文件夹中文件的个数、文件夹。 附有实验教程.md,纪录了一些bug的解决方法。初学者可根据教程进行...

    jdk-8u321-linux-x64.tar.zip

    标题 "jdk-8u321-linux-x64.tar.zip" 暗示了这是一个针对Linux平台的Java Development Kit(JDK)版本8u321的压缩文件,且使用了tar和zip...掌握这些知识对于在Linux环境下进行Java开发、部署和运维工作是非常重要的。

    jdk-8u331-linux-x64.tar.gz

    标签涉及了"linux 运维 服务器 分布式",这些是与JDK在Linux环境下的应用紧密相关的领域: 1. **Linux运维**:在Linux环境中部署和管理JDK是运维人员的基本技能。他们需要配置Java环境变量,如JAVA_HOME、PATH和...

    奇趣科技:Linux将改变VoIP市场格局.pdf

    这些产品和解决方案不仅可以快速部署下一代电信网络,也支持3G无线和IMS(IP Multimedia Subsystem)业务。 IMS是电信行业中的一个重要概念,它旨在通过IP网络提供统一的服务平台,实现不同业务(如语音、数据、...

    Linux下安装Jboss安装详细教程.docx

    ### Linux下安装JBoss的详细教程 #### 一、引言 JBoss是一个遵循J2EE规范的应用服务器,自项目启动以来,它已从最初的EJB容器发展成为一个全面的Web操作系统,涵盖了J2EE规范中的最新技术。JBoss不仅免费且开源,...

    SAPJCO3.0_LINUX_X86_64.zip

    SAP JCo通过Java API提供服务,允许开发人员在Java环境中构建和部署SAP集成解决方案。这包括但不限于: 1. **SAP连接设置**:开发者需要配置SAP系统的连接参数,如系统ID、主机名、端口号、用户名和密码等,以便...

    在没有配置DNS的linux上发布ServiceMix

    总结来说,在没有DNS的Linux环境下发布ServiceMix,关键在于正确配置IP地址、启动选项以及管理服务的端口。同时,利用 `pom.xml` 文件管理和部署源码,结合ServiceMix提供的工具,可以实现高效的企业服务集成和管理...

    jboss-4.2.2

    9. **日志管理和故障排查**:JBoss的日志文件位于`server`目录下,如`log/server.log`,通过分析日志可以帮助诊断和解决问题。 10. **热部署和自动部署**:`deploy`目录下的应用会自动部署,但可能需要调整`auto-...

    ATG Linux installation

    在本文中,我们将深入探讨如何在Linux环境下安装ATG 11.1版本。ATG(Application Technology Generator)是Oracle公司的一个电子商务平台,用于构建高度个性化的在线购物体验。以下是一些关键步骤和配置要点: 首先...

    Java部署神器exe4j,轻松打造跨平台 executable,优化应用分发效率

    exe4j是一款强大的跨平台Java可执行文件生成器,它允许开发者将Java应用程序(包括Swing、SWT/AWT/RMI应用程序以及命令行工具)打包成Windows原生的.exe文件或是Linux、macOS上的可执行文件。这样,最终用户无需安装...

    apache-tomcat-5.5.35.tar.gz for linux

    在这个特定的版本"apache-tomcat-5.5.35.tar.gz"中,我们讨论的是针对Linux操作系统的部署。Tomcat 5.5.x系列是较旧的一个版本,但它在当时提供了稳定且功能丰富的Java应用服务器平台。 1. **Tomcat的安装与解压** ...

    Ehcache集群实例

    综上所述,Ehcache集群结合JGroups和RMI提供了强大的分布式缓存解决方案。理解这些组件的工作原理和配置方法对于开发和维护高性能、高可用的应用至关重要。在实际应用中,根据业务需求调整配置,以实现最佳的性能和...

    Weblogic12 集群配置手册

    3. 监控与诊断:利用Weblogic提供的监控工具如JMX、WLST和JConsole,实时查看集群状态并进行问题诊断。 六、高可用性与容错性 1. 热备份:设置热备份服务器实例,当主实例故障时自动接管服务。 2. 磁盘共享:确保...

    鲁洲集团BI项目经验总结(planning+essbase+oracle db)

    如果仍然存在问题,可尝试重启相关服务,如Planning、EAS和RMI服务,再按照方法1重试。 2. **Planning登陆报错**: - 如果出现“没有应用程序可用”的错误,可能需要重新配置Foundation和Planning服务。 3. **...

    alfresco4.0部署及分离solr

    本篇文章将详细介绍如何在Windows环境下部署Alfresco 4.2.c版本,并将其内置的Solr服务进行分离部署。 ### 1. 系统环境 确保你的系统满足以下最低配置: - 操作系统:Windows Server或类似支持的Linux发行版 - Java...

    运行jar程序时添加vm参数的方法

    在Java开发中,有时我们需要对运行的JAR程序进行一些高级配置,比如调整...这对于优化程序性能、监控系统状态以及解决内存泄漏等问题非常有帮助。确保正确理解和使用这些参数,可以更好地管理和调试Java应用程序。

    WebLogic宕机大全总结

    ### WebLogic宕机问题及其解决策略 #### 一、引言 在现代企业级应用部署中,Oracle WebLogic Server作为一款高性能的企业级Java应用服务器,因其稳定性和强大的功能集受到广泛青睐。然而,在实际生产环境中,...

    TongWeb6.1快速使用手册.pdf

    安装过程在Linux平台下分为几个步骤:运行安装脚本命令,系统会解压安装资源,并配置安装程序适应系统环境,随后启动CONSOLE模式安装。在安装过程中,用户会被提示选择安装语言,可以选择英语或简体中文。 安装完成...

Global site tag (gtag.js) - Google Analytics