tomcat部署多个项目

由于项目需要,要在同一个tomcat port下再部署一个项目,当然之前已经部署过一个项目而且访问操作都是正常的

但是部署了新项目后,原来的老项目不能访问了,空白了,反复测试,把新项目删除后就又恢复正常了


鉴于此现象,我怀疑是tomcat下是不是不能部署多个项目呢,然后就百度之,发现了以下的解决方式,按照其修改后可以正常访问了


解决1: 
是两个项目的设置重复了,导致出错,但我发现web.xml里并没有配置webAppRootKey项,然后查阅网上资料 
,原来是因为如果没有web.xm 内没有设置webAppRootKey项,是为默认设置 

public  static  void  setWebAppRootSystemProperty(ServletContext servletContext) throws  IllegalStateException  { 
        String  param = servletContext.getInitParameter(WEB_APP_ROOT_KEY_PARAM); 
        String  key = (param != null  ? param : DEFAULT_WEB_APP_ROOT_KEY); 
        String  oldValue = System .getProperty(key); 
        if  (oldValue != null ) { 
            throw  new  IllegalStateException ("WARNING: Web app root system property already set: "  + key + " = "  + 
                                                                 

            oldValue + " - Choose unique webAppRootKey values in your web.xml files!" ); 
        } 
        String  root = servletContext.getRealPath("/" ); 
        if  (root == null ) { 
            throw  new  IllegalStateException ("Cannot set web app root system property when WAR file is not  

expanded"); 
        } 
        System .setProperty(key, root); 
        servletContext.log("Set web app root system property: "  + key + " = "  + root); 
    } 

从代码看出,该方法其实就是把该web application的根目录的绝对文件路径作为属性保存在 System的属性列表中。该属性的名字,由web.xml文件中的名为"webAppRootKey"的参数值指出。 

如果不在web.xml中定义 webAppRootKey参数,那么属性名就是缺省的"webapp.root".在我们的petclinic项目中已经定义了 webAppRootKey参数,其值为"petclinic.root",因此,属性的名字 

就是"petclinic.root". 

最后将webAppRootKey项配置好,错误解决。 

以上解释懂一点,但是自己解决方法:在web.xml中加: 
<context-param> 
<param-name>webAppRootKey</param-name> 
<param-value>web1.root</param-value> 
</context-param> 
另一个项目中加: 
<context-param> 
<param-name>webAppRootKey</param-name> 
<param-value>web2.root</param-value> 
</context-param> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值