发表于: 2017-11-19 19:04:59
1 584
今日完成:
成功打包,在服务器上实现客户端调用服务端,即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
评论