Tomcat转jboss踩的那些坑
问题背景
今天发版本,是一个httpclient的跳转(由于公司网络原因,所以对外网的访问都经过这个代理服务出去)。
问题原因
之前的开发一直在window系统的tomcat服务器上进行的,对jboss没有一点了解。所以今天就出了两个大坑。记录下来。
问题一:
项目部署到jboss上,启动服务没有任何错误,并且服务器上的其他应用能正确访问,但是我部署的项目死都访问不了(黑线,一直纠结是不是网络组的同事发包的问题)。到最后,只有请出团队的灵魂人物,老大来帮忙看了,看了半天,确实是我打包的问题,我打war包的时候,是在eclipse中右击项目--->tomcat project--->export to the WAR file sets in project properties 然后到处war包,当然,之前也需要在eclipse中设置打war包的一些参数。
经过上面的方法打好war包后,悲剧也来了。后面发现,这种打包方式确实有问题,war包中还包含了源码。
有问题的war包:(jboss运行有问题,Tomcat可以运行)
然后老大直接在eclipse中用export --> war file 打包,放到jboss服务中,完美运行,项目也可以访问了
没问题war包
这是打包的一个坑。。。。
问题二:
因为项目要访问客户接口,客户接口是https需要证书。所以在项目中需要拿到本地的安全证书。在项目中,我把证书放到根目录下,因此在程序里通过class.getResource("").getPath()方法拿到编译后的根路径。但是打印出来看到路径前面还有一个分割符,如:/E:/tomcat/project/....所以,我用了字符分割去掉了前面的“/”,把路径变为:E:/tomcat/project/....在window环境下,取得证书完全没问题,等项目部署到linux服务上时,发现,找不到证书的路径。一查,原来就是因为前面的“/”没有了的原因。当初去掉就是凭个人感觉,在window中不需要前面的“/”。后面测试,在window环境下有前面的“/”,也能取到本地的证书。所以不需要将前面的“/”去掉,在window和linux环境下都能访问到。这个又是访问路径的一个大坑。
开发就是在无数个坑里面前进。