java RMI 开发

                                                                                                              

    一:服务端开发:  

        <bean id="webImagesServiceImpl" class="com.yknet.llgo.service.rmi.impl.WebImagesServiceImpl" ></bean>

        <!-- 图片管理服务接口 -->
        <bean id="webImagesServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
            <!-- 服务的实现类 -->
            <property name="service" ref="webImagesServiceImpl" />
            <!-- 定义服务名,给客户端调用的名称 -->
            <property name="serviceName" value="webImagesService" />
            <!-- 服务端的接口 -->
            <property name="serviceInterface" value="com.yknet.llgo.service.rmi.IWebImagesService" />
            <!-- 服务端的端口号,这个也是供客户端调用的 -->
            <property name="registryPort" value="8088"></property>
            <property name="servicePort" value="2098"/><!--不指定就随机 -->  
        </bean>
        
        <bean id="sMRMISocket" class="com.yknet.llgo.core.SMRMISocket"></bean> 
    
//解决外网访问时连接超时
package
com.yknet.llgo.core; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.rmi.server.RMISocketFactory; 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); } }

 

 

  

    二:客服端配置:    
    <bean id="imagesServiceWeb" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
        <!-- 端口号必须和服务端配置的要一模一样 8088/imagesServiceWeb:就是服务端配置的 serviceName -->
        <property name="serviceUrl" value="rmi://121.42.138.7:8088/webImagesService"></property>
        <!-- 服务端的接口 -->
        <property name="serviceInterface" value="com.yknet.llgo.service.rmi.IWebImagesService" />
    </bean>

 


posted @ 2016-06-06 17:24  JoinGu  阅读(220)  评论(0编辑  收藏  举报