论坛首页 Java企业应用论坛

war包的context path由什么决定?

浏览 10295 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-15  
通过eclipse-wst的打包功能,我把工程导出成一个war包。记得以往的时候,一个web app的context path是由context标签的path来决定的,例如

<Context path="/context_path" docBase="d:/workspace/xxx/web" debug="1" privileged="true">


但是不使用context配置方式的时候呢?比如war直接copy到webapps下面

我一直以为这时tomcat是按照文件夹名来标识这个web应用,实际上好像也是这样。可是昨天发生了一件怪事,就是无论我怎样改变war文件名(也就是对应部署后自动解压缩的文件夹名),系统只要一login,后面所有<%request.getContextPath()%>取得的都是我开发时使用的部署名。。。非常郁闷

问题比较复杂,描述的也不太清楚,请大家多多包涵~~~
   发表时间:2006-11-15  
Tomcat documentation是这么说的:

引用

Copy the web application archive file into directory $CATALINA_HOME/webapps/. When Tomcat is started, it will automatically expand the web application archive file into its unpacked form, and execute the application that way. This approach would typically be used to install an additional application, provided by a third party vendor or by your internal development staff, into an existing Tomcat installation. NOTE - If you use this approach, and wish to update your application later, you must both replace the web application archive file AND delete the expanded directory that Tomcat created, and then restart Tomcat, in order to reflect your changes.


里面居然没提context是什么,要想深究只能去看源代码,要不也别深究了。
0 请登录后投票
   发表时间:2006-11-15  
rkihabara 写道
可是昨天发生了一件怪事,就是无论我怎样改变war文件名(也就是对应部署后自动解压缩的文件夹名),系统只要一login,后面所有<%request.getContextPath()%>取得的都是我开发时使用的部署名。。。非常郁闷


这段话看的糊里糊涂,按我的理解,你开发时部署了一次,http://localhost:8080/foo,开发完了打包bar.war,解包后应该是http://localhost:8080/bar

你在browser里login,用的是哪个URL?
0 请登录后投票
   发表时间:2006-11-16  
他用的是http://localhost:8080/bar

但是login以后会跳转到http://localhost:8080/foo/XXX.do

我也碰见过这个问题,不知道是什么原因.
0 请登录后投票
   发表时间:2006-11-16  
在$TOMCAT_HOME/conf/Catalina/localhost/里,会生成几个context的xml配置文件。去检查一下看看。如果不想要的话,把不想要的xml配置文件删除试试看。

再者试试把work目录清空看看

可以直接用jar命令来手工打成war包。
cd xxx
jar cvf xxx.war *
0 请登录后投票
   发表时间:2006-11-16  
leobluewing 写道
他用的是http://localhost:8080/bar

但是login以后会跳转到http://localhost:8080/foo/XXX.do

我也碰见过这个问题,不知道是什么原因.


确实是这样的。。

to bigPanda : 我也到tomcat主页去研究了半天,没有结论。。。

to together : 可以直接用jar命令来手工打成war包。 问一下war跟jar是不是差不多?直接改名就行?

多谢各位了,有相关解释了我再来转告大家~
0 请登录后投票
   发表时间:2006-11-16  
rkihabara 写道
leobluewing 写道
他用的是http://localhost:8080/bar

但是login以后会跳转到http://localhost:8080/foo/XXX.do

我也碰见过这个问题,不知道是什么原因.


确实是这样的。。



用的是Response.sendRedirect? 代码怎么写的?

war文件里META-INF的MANIFEST里写啥了?
0 请登录后投票
   发表时间:2006-11-17  
bigpanda 写道
rkihabara 写道
leobluewing 写道
他用的是http://localhost:8080/bar

但是login以后会跳转到http://localhost:8080/foo/XXX.do

我也碰见过这个问题,不知道是什么原因.


确实是这样的。。



用的是Response.sendRedirect? 代码怎么写的?

war文件里META-INF的MANIFEST里写啥了?


用的是struts的findforward,也有一些是redirect的,但是都不对。。。

manifiest里就是空,只有这么一句

Manifest-Version: 1.0

唉,郁闷
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics