这个 发布方式,可能对 spring 任务调度重复执行 有关系.
如果webapps,server.xml ,xml 方式 重复发布一个web 项目的话 自然任务调度就会执行多次
1、【使用控制台部署】
访问Http://localhost:8080,并通过Tomcat Manager登录,进入部署界面即可。
2、【利用Tomcat自动部署】
将应用程序复制到Tomcat的 webapps路径下,Tomcat启动时将自动加载。
3、【修改Server.xml文件部署】
用UE或EditPlus打开Tomcat位于conf/server.xml的配置文件,找到以下内容: <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> ..... </Host> ..... 在Host之间添加如下内容: <Context path="/Mywebapps" reloadable="true" docBase="d:Mywebapps" workDir="d:Mywebappsemp"/> path:表示访问的路径;如上述例子中,访问该应用程序为:http://localhost:8080/Mywebapps reloadable:表示可以在运行时在classes与lib文件夹下自动加载类包 docbase:表示应用程序的地址,注意斜杠的方向“” workdir:表示缓存文件的放置地址
4、【增加自定义web部署文件(推荐使用,不需要重启Tomcat)】
在Tomcat安装目录confCatalinalocalhost下,里面有Tomcat自带的三个应用,随意复制其中的一个XML文件,然后修改docbase指向你自己的应用程序, 并把path改名,各参数参见上第三种方法。或者你也可以自己新建一个XML文件(注意此文件名将作为Context中的path,不管文件里的path怎么设置也无效), 将以下内容复制过去,修改相应路径即可。 <Context path="/test" docBase="F:/J2EE/yazd_war_3_0" debug="0" privileged="true" reloadable="true" > </Context> 部署完毕后,通过http://localhost:8080/你的path名 就可以访问。
server.xml 配置例子
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/> <!--可以是 相对路径 也可以是 绝对路径 --> <!-- <Context path="" appBase="wtwebapps" autoDeploy="true" docBase="../wtwebapps/testweb" debug="0" reloadable="true" crossContext="true"></Context> --> </Host>
第四种 方式的例子
conf\Catalina\localhost\testweb.xml
<!--可以是 相对路径 也可以是 绝对路径 --> <?xml version="1.0"?> <Context path="" appBase="wtwebapps" autoDeploy="true" docBase="${catalina.home}/wtwebapps/testweb" reloadable="true" crossContext="true"></Context>