关于tomcat 多个配置多个host加载多次,导致initSerlet加载多次(tomcat,web,xml,开发技术)

时间:2024-05-05 13:55:42 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    %E5%85%B3%E4%BA%8Etomcat+%E5%A4%9A%E4%B8%AA%E9%85%8D%E7%BD%AE%E5%A4%9A%E4%B8%AAhost%E5%8A%A0%E8%BD%BD%E5%A4%9A%E6%AC%A1%EF%BC%8C%E5%AF%BC%E8%87%B4initSerlet%E5%8A%A0%E8%BD%BD%E5%A4%9A%E6%AC%A1

之前公司申请了五个域名,因为前期只有一个项目,所以老板要求多个域名对应到一个项目上,于是,我就在tomcat的web.xml上配置了多个host如下:

<Host name="www.XXX.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/XXXWebsite" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.XXX1.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/XXXWebsite" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.XXXX.cn" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/XXXWebsite" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.XXXX.net" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/XXXWebsite" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">

这样写了。

后来才知道,是因为前面配了5个host才导致这样的问题的,因为当时对tomcat的web.xml配置不是很熟悉,后来网上搜了一堆,很巧合的发现了篇博客写的,其实多个域名对应一个项目的话,可以使用web.xml 里面的一个标签,<Alias>www.XXX.com</Alias>
标签。

于是上面的配置就变成如下:

<Host
name="www.XXX.com" appBase="webapps" unpackWARs="true" autoDeploy="true">

<Context path="" docBase="/XXXWebsite"
debug="0" reloadable="true" />

<Alias>www.XXX1.com</Alias>

<Alias>www.XXXX.cn</Alias>

<Alias>www.XXXX.net</Alias>

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log."
suffix=".txt"

%l %u %t "%r" %s %b" />

并且将引擎的<Engine></Engine> defaultHost="www.XXX.com">, 因为一个Engine 必须有一个host 跟 它的名字一样,

这样配置完之后,我们再去看log,此时只init方法只执行了一次。成功解决了问题。

本文:关于tomcat 多个配置多个host加载多次,导致initSerlet加载多次的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:dom和xpath解析xml下一篇:

12 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18