发表于: 2016-12-13 22:26:42

2 2005


今天完成的事情:

1)任务9分离service与web

2)任务8部署两台service到虚拟机,通过本机的web访问


明天计划的事情:

1)调试任务9

2)任务8部署两台web在本机,通过nginx配置随机访问虚拟机的两台service


遇到的问题:

1)将任务8的两台service部署到虚拟机时(两台service分别通过11111与10100端口暴露接口),使用netstat -apn|grep 命令始终没有发现11111与10100启用

原因调查:通过调用tail -n 200 catalina.out命令查看tomcat日志,发现部署时报错,导致部署失败

class path resource [com/jnshu/mapping/] cannot be resolved to URL because it does not exist

应该是 / 不被linux识别

尝试更改:classpath:com/jnshu/mapping/*.xml中的 / 改为 \

2)更改路径结构后,重新部署,部署成功,在本机部署web,尝试输入url连接,报错500

Remote service [rmi://192.168.31.170:10100/studentService] threw exception

java.rmi.ConnectException: Connection refused to host: localhost

原因调查:表明连接失败,而这里很奇怪是是尝试连接的是localhost,而不是虚拟机ip,突然想起,之前在service实现类的初始化方法中已经加过System.setProperty("java.rmi.server.hostname", "localhost")这句了

尝试更改:注掉这句重新部署,会报错Connection refused to host: 127.0.0.1

再尝试更改:System.setProperty("java.rmi.server.hostname", "localhost")重新加上,将localhost改成虚拟机ip,重新部署,ok(这里ok是说不再报连接错误了)

3)继续尝试连接,仍然报错500,但这次是找不到数据调用方法,最经典的mybatis报错

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

原因调查:应该还是问题1中的路径改的有问题,造成mapper文件没有加载成功

尝试更改:将mapper文件移动到resource文件夹下,更改成如下路径

<property name="mapperLocations" value="classpath:StudentMapper.xml" />

终于web端调用数据并显示页面成功


收获:

1)又翻越了无数bug

2)个人认为,既然部署虚拟机时遇到这么多配置不当的问题,可以自己尝试将部署前需要注意的一些地方总结一下,每次部署前当成流程检查一下,就少了很多麻烦事

3)学会了在linux下查看tomcat部署日志



返回列表 返回列表
评论

    分享到