前段时间写了一个全文检索服务,用的是RMI远程调用。在本机上写好后,测试ok.但一部署到服务器上就报找不到服务。在网上找了一大通:
原因如下:
RMI除了注册端口外,其通信端口是服务器随机产生的,因此不容易穿过防火墙。
现将我在网上搜索到的解决方法公布在这里,给其它人需要的人一个方便。也给自己一个方便。
如果要扣分就扣吧。
一、普通解决:
import java.rmi.server.*;
import java.io.*;
import java.net.*;
public class SMRMISocket extends RMISocketFactory {
public Socket createSocket(String host, int port)
throws IOException{
return new Socket(host,port);
}
public ServerSocket createServerSocket(int port)
throws IOException {
if (port == 0)
port = 2098;//不指定就随机
return new ServerSocket(port);
}
}
二、Spring中
<bean id="rmiSearchService" class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="serviceName" value="search"/><!-- 服务名称 -->
<property name="service" ref="searchService"/>
<property name="serviceInterface" value="velcro.searchengine.ISearcher"/>
<property name="registryPort" value="2098"/><!-- 端口 -->
<property name="servicePort" value="2098"/>><!--不指定就随机 -->
</bean>
分享到:
相关推荐
做为java分布式计算的基础框架的RMI体系,是javaEE结构的基础技术. ...使RMI穿过防火墙--定制rmiSocket 6.Spring中的rmi应用 7.类似RMI的相关开源技术实现 -------具体请下载附件或登陆www.NetJava.cn
RMI编码简洁, 但是遇到防火墙就歇菜了, 那么,JAVA RMI如何才能穿越防火墙呢?
java rmi java rmijava rmi javajava rmi java rmi rmi
RMI简单实例RMI简单实例RMI简单实例
你是否曾想编写一个可以穿越防火墙来访问EJBs的J2EE应用程序?这会很麻烦,开发人员必须用各种迂回的方法,而没有一种是“特别好的”。开发人员通常写一个servlet来截取HTTP请求,并将它们导向到EJBs,这种方法很不...
完整的Rmi调用示例,极难得的Rmi应用示例
rmi的详细例子,rmi的详细用法,一看就懂
RMI 规范 RMI 详细介绍 共10章
RMI教程 Java RMIRMI教程 Java RMIRMI教程 Java RMIRMI教程 Java RMIRMI教程 Java RMI
rmi小程序,RMI文档,为RMI初学者使用
RMI远程方法调用RMI远程方法调用RMI远程方法调用RMI远程方法调用RMI远程方法调用
1. Unpack RMI.rar and put the package "features" and "plugins" under the package "net.genady.rmi_2.0.2.1" to <%eclipse%> directory; 2. Copy rmi.jar and lic.jar under the package "crack" to ...
Spring-RMI (RMI调用, HTTP调用) 本人测试过了
本项目使用socket直接发送数据包来攻击rmi,通过反序列化攻击rmi,双击直接运行,对1099端口的rmi服务直接进行漏洞检测。
java rmi上传文件 在这次的项目中,对于客户端与服务器之间的通信,想了许多办法,由于做的是富客户端应用,最终将技术选定在了RMI和Java-sockets两种之间,其中RMI的灵活性不高,客户端和服务器端都必须是java编写...
Weblogic Server与RMI RMI的使用介绍
Java编程rmi实例,给出远程方法调用技术在java方面的具体例子。
RMI远程文件传输
java RMI
spring RMI 简单例子