一个项目部署引发的“血案”

    项目开发、环境搭建同步进行,本人暂时客串了把运维,在这方面是绝对的小白。出现了很多莫名其妙的问题,不过还好最终都还是解决掉了。

    项目在本地测试很好用一点问题都没有,打包压缩到测试服务器上。 系统环境是Centos、Jdk1.6、Tomcat6。环境没有什么问题,丢了个简单的jsp页面上去可以访问。但是部署后的项目已访问就报jsp错误:

帖子地址:http://topic.csdn.net/u/20110429/19/e434ec6c-34c7-48e0-92e4-90e21b914158.html

网友给出的解决方法是:没有引入fmt标签,再者就是jar包有问题。但是无论是standard和jstl包怎么更换在本地都好用,一旦部署到服务器上面还是包jsp错误。引入fmt标签也是同样。郁闷了好几天。

     不过最让人奇怪的还有,把项目部署在测试部门哪里没有任何的问题。测试部的环境完全和我们的一样,而且工具包都还是从我们这里拷贝的。更郁闷啦。最后决定吧tomcat重新安装44。OK,问题解决项目运行正常。汗!!难道是tomcat安装的时候出现了问题?无语了。

     页面是出来了,但是css、图片都没有了啊,肯定是路径有问题。查看页面源码发现图片途径的的根目录就是项目名称不见了。

<input type="text" id="a" name="a" value="<%=basePath%>"/>  测试发现输入框显示为http://localhost:8080 . 我晕啊,项目名称去哪里了啊?

 (这是很常用的方式)

问题还是出在tomcat上:

request.getContextPath() 解决相对路径问题,会返回站点的跟路径。例如要在生成文件放在服务器目录下,那么就可以这么来用request.getContextPath()+/dir  就可得到完整的目录结构。但是为什么在jsp页面上得到的却是为空哪?request.getContextPath()得到的事项目名称,如果项目为根目录的话那么得到的就是为空。那么这又应该怎么去理解哪,现在我们转到项目的部署方式上。

      我们在使用tomca作为web服务器的时候(本机上哦),一般习惯吧项目部署在/webapps目录下,分为两种部署方式:

1、将项目中webRoot中的文件全部放入 /webapps/ROOT (记得要删除ROOT下面的文件)。

2、在/webapps下创建以项目命命名的文件夹并将weRoot下的文件全部放入其中。这是我们最常用的方式,很方便。

      当然了如果在server.xml中更改了指向的路径,同样也适用以上我们所说的方式。

对于第一种方式request.getContextPath() 会返回空值,第二种方式回返回/项目名称。这样在返回到jsp页面出现的问题上就可以很好解决了。把我们的项目指定的目录下去,记住了千万不要放入指定目录下的ROOT中哦。重新启动项目,浏览器访问,登录OK没有任何问题。

 

  对于第一个问题不想再去考虑了,困扰了我好几天不知道死掉了多少的脑细胞,最后也只弄了个不明不白,只能归结为灵异事件。第二种问题也不是什么大的知识,平常多注意下细节就可以了。越是我们经常用到的不起眼的知识,往往正是出纰漏的地方。以此为鉴,以资共勉!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值