发表于: 2016-05-17 21:56:26
0 1812
【操作步骤】
1.已经解决了所有的BUG(开玩笑,BUG怎么可能解决完,只不过是没发现而已),web端可以正常调用service端的方法,整个项目正常工作。
2.开始对前后端进行部署。
2.1 部署两台service。
我是这样实现的,首先把原来的service端重命名为service_1,然后把service_1复制一份,重命名为service_2,在service_1项目中,rmiService.xml中的registryPort为9100;在service_2项目中,rmiService.xml中的registryPort为9102。
然后在client端,通过改写rmiClient.xml文件中的serviceUrl值来决定是调用service_1还是service_2中的方法。
然后我打算利用Nginx对rmi服务进行负载均衡,在Nginx中设置了一个UpStream,里面包含“localhost:9100”(service_1中的registryPort)和“localhost:9102”(service_2中的registryPort),我希望我启动Nginx后,在client端不用再写“rmi://localhost:9100/...”,只要写上“rmi://localhost/...”就可以调用服务。
很明显,我说我希望如此,自然是失败了,错误提示是拒绝连接,我发现我这样本来就是想错了,使用Nginx后,表面上你只用输入“localhost/”,但其实它还是调用的是“localhost:端口号/”。
明天继续想办法吧!!!
【知识总结】
1.关于maven划分模块的理论知识部分:http://juvenshun.iteye.com/blog/305865?page=2#comments
2.关于maven划分模块的实践操作部分:http://www.cnblogs.com/xdp-gacl/p/4242221.html
【出现的问题(已解决)】
1.问题:我把service端和web端都要用到的models和service接口、util接口都打成一个jar包,并在service端和web端都添加了相应的依赖,在jar包中,我的models的前缀是com.jnshu.ITtask_8.models,但是当我在applicationContext.xml文件中配置SqlSessionFactoryBean时,报错了,提示我找不到相应的model(找不到Student、Profession、Classes,这三个model我都在jar中,而且我的jar包也成功导入了),我是这样配置SqlSessionFactoryBean的:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="com.jnshu.ITtask_8.models" />
</bean>
在配置好SqlSessionFactoryBean后,我在StudentMapper.xml文件中如果想要调用com.jnshu.ITtask_8.models.Student类型,我只用这样写<parameterType="Student">,就可以了,不用写前面那一大串,但是,很遗憾,项目竟然找不到我这个类。
关键是那个typeAliasesPackage。
解决方法:采用了一个本办法解决了问题,在applicationContext.xml文件中配置SqlSessionFactoryBean时,我删去了typeAliasesPackage这个属性,然后在StudentMapper.xml中如果要调用Student类,就只能这样写<parameterType="com.jnshu.ITtask_8.models.Student">
【出现的问题(未解决)】
1.碰到一个小问题,因为我是先把service端重命名为service_1后,复制了一份重命名为service_2,所以可能里面有某些东西没有改过来,当我启动service_1时(端口号为8112),我在浏览器输入“localhost:8112/service_1/...”可以正常完成请求;当我启动service_2时(端口号为8080),我在浏览器输入“localhost:8080/service_2/...”是不能完成请求的,会报404错误,而输入“localhost:8080/service_1/...”则可以正常完成请求。这是为什么呢?
而且我不是简单地把service的文件夹名称改为service_2就完了,我重命名采用的是eclipse中的右键-->Refactor-->Rename。
再而且,我采用同样的手段把原来的service项目重命名为service_1后,就能够通过“localhost:8112/service_1/...”来完成请求。
【疑问】
评论