发表于: 2017-04-19 23:48:44
3 1463
今天完成的事情:
一.将原有学员系统中Service中拆分出来,变成一个RMI的Service。
具体的一步一步的介绍我就不做了,我也是站在前人的肩膀上,逐步熟悉基本的概念和操作的。
参考:1.沈明师兄日报:http://www.jnshu.com/daily/15714?tid=55
2.丁杰师兄日报:http://www.jnshu.com/daily/7829?uid=3933
尤其是沈明师兄日报,对任务理解的好,做的也很详细。对一个任务不懂得时候,看看沈明师兄日报,就能找到思路。
这一步我重新生成了一个 maven 的聚合项目,eclipse 如何生成请查看上面日报,我用的 idea 生成的,虽然 idea 和 eclipse 在工程目录这块逻辑不一样,但是百度一下还是很好解决的,我也就不粘图了。
最终我的目录结构是这样的:
1.首先处理 core ,在这里面写好实体类和 service 接口,注意:实体类要序列化,这是 rmi 的前提。core 的 pom 文件不需要其他的依赖。
2.写 service ,分别包括 dao,service 的实现类,还有一个 rmi 要用的 server 类。这时候就需要在 pom 里面添加在学员系统里面用到的 spring 和 mybatis 等依赖了。由于在 service 会用到 core 里面的实体类,所以也要对 pom 依赖 core,这时候需要把 task8-core clean install 了。
我的server.xml 直接配到 spring 文件里面了。
<!-- server start -->
<bean id="studentServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="serviceName" value="StudentService"/>
<property name="service" ref="studentService"/>
<property name="serviceInterface" value="org.xiuzhenyuan.service.StudentService"/>
<property name="registryPort" value="8001"/>
<property name="servicePort" value="8002"/>
</bean>
<bean id="studentService" class="org.xiuzhenyuan.service.impl.StudentServiceImpl"/>
<!-- server end -->
3.controller 里面很简单,写一个简单的控制层即可,注意 pom 里面也需要引入 spring、mybatis等,还有 core。
<context:component-scan base-package="org.xiuzhenyuan" />
<bean id="studentService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://localhost:8001/StudentService"/>
<property name="serviceInterface" value="org.xiuzhenyuan.service.StudentService"/>
</bean>
4.写完了之后可以测试了:
先打开 service,正常,可以获得数据。
打开tomcat,访问 controller,这儿遇到坑了,花了好长时间来解决一个小问题。看结果:
数据正确,但是没有用Json去处理。
二.在原来的WEB中调用Service。
1.由于我的rmi就是仿照 task4 去做的,所以我直接在 task4 里面去访问,只需要把 controller层处理一下,其他的不用动。
可以成功访问,但是当时忘了截图了。
三.部署两台Service,在WEB中随机访问任意一台Service
明天计划的事情:
1.完成任务八,开始任务九
遇到的问题:
1.


但是有个需要注意的地方,我的 task4 项目如果不配置这个,则默认打开的是 index.jsp 页面,但是任务八这个默认打开的却是 tomcat 的主页面,而且无论怎么在后面修改路径,都不能正常访问。
收获:
1.今天超哥讲了一下,遇到解决不了问题是对人一种信心的一种锻炼,在工作中尤为重要。
评论