发表于: 2017-11-19 19:04:59

1 583


今日完成:

成功打包,在服务器上实现客户端调用服务端,即web项目操作数据库通过jar包来进行,目前在做随机访问。

明日计划:

明天应该就可以提交任务了。

代码展示:

spring中随机分配bean

<bean id="portSelection" class="com.jnshu.rmi.PortSelection">
   <property name="ips">
       <list>
           <value>localhost</value>
           <value>47.95.195.246</value>
       </list>
   </property>
   <property name="ports">
       <list>
           <value>4567</value>
           <value>4568</value>
           <value>4569</value>
           <value>8080</value>
           <value>8282</value>
       </list>
   </property>
</bean>

筛选上面的ip和端口,把所有可行的都放入doableports中。

public void setPorts(int[] ports) throws ClassNotFoundException, IOException {
this.ports = ports;
   for(String ip:ips){
for(int port:ports){
try {
Socket s = new Socket();
               SocketAddress add = new InetSocketAddress(ip,port);
               s.connect(add,1000);
               doableports.add(new String(ip+" "+port));
               s.close();
           }catch (Exception e){}
}
}

之后吧可行的地址填入properties中,目前还不能成功,所以还没有随机分配。

Properties properties = new Properties();
OutputStream output =new FileOutputStream("main/resources/rmi.properties");
properties.setProperty("url",doableports.get(0));
properties.store(output,"");

最后就是rmi工厂bean引用这个配置文件来生成bean

<bean id="myRMIClient"  class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
   <property name="serviceInterface" value="com.jnshu.rmi.ServicesDao"/>
   <property name="serviceUrl" value="${url}"/>
</bean>

遇到的问题:

走了很多弯路,看了很久源码,想把RmiProxyFactoryBean这个bean直接在分配地址的那个类中直接生成,但是不知道问什么在类中不能把接口注入rmi中,即使成功后也不知道能否通过这个接口直接调用服务端的实现类,想了下应该还是目前的这个思路比较可行,就放弃了,现在的难点在怎么把生成的properties放在resources里。

今日工作围绕着如何把一个bean(portSelection)的一个属性注入到myRMIClient中的serviceInterface中。


进度:

任务八

任务开始时间:2017.11.16

预计demo时间:2017.11.20

禅道:http://task.ptteng.com/zentao/my-task.htm


返回列表 返回列表
评论

    分享到