tomcat下部署项目的流程和遇到的问题笔记

简单部署流程:

1,解析域名关联到服务器ip

2,配置服务器jre运行环境

3,安装tomcat

4,项目打war包,放入tomcat根目录下webapps(tomcat默认加载的项目目录)目录下

5,启动运行

Tomcat增加Context配置导致启动的时候项目加载两次

转自:https://segmentfault.com/a/1190000002985203

Tomcat排雷笔记

1. 出现场景
eclipse发布web应用至tomcat,默认方式下访问该项目是需要带项目名称的,例http://localhost:8080/myapp/
现在需要改成这样访问http://localhost
修改tomcat的server.xml文件,增加如下配置<Context path="" docBase="myapp" reloadable="false"/>,修改后host部分如下:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="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"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

       <Context path="" docBase="myapp" reloadable="false"/>

      </Host>

此时每次启动tomcat观察日志都会发现应用加载了两次,什么原因呢?

2. 问题原因

虚拟目录引起的问题,我们在Host标签里配置了appBase="webapps",tomcat加载一次应用。在里配置了一次docBase,tomcat又去加载一次应用。

3. 解决办法

将appBase="webapps"置为appBase="",docBase="myapp"置为docBase="webapps/myapp"。配置如下:

<Host name="localhost"  appBase=""
            unpackWARs="true" autoDeploy="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"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

       <Context path="" docBase="webapps/myapp" reloadable="false"/>

      </Host>

说明:如果你的项目中的链接或者图片写的都是绝对路径的话,那么带有项目名称的绝对路径是不可以使用的。

tomcat 部署多个项目的技巧  

转自:https://segmentfault.com/a/1190000005942191

方法一、在tomcat的根目录下的 conf文件夹下的server.xml文件中的<Host>标签中加入:

//docBase: 项目的webRoot  path:访问路径  reloadable:是否每次都重新加载
<Context path="/PD_Microportal" docBase="E:\WorkSpace\PD_Microportal\WebContent" debug="0" reloadable="false"/>

然而上面对于多个项目的频繁切换就需要注释来注释去的很麻烦有木有!往下看还有更简单的....

方法二、在tomcat的根目录下的 conf\Catalina\localhost文件下新建xml文件,文件名就是你项目的的path,可以随意起,就是在浏览器上访问的路径名称。你想同时部署几个工程就创建几个xml 注意文件名别重名。然后把这个:

<Context path="" docBase="E:\WorkSpace\项目名称\WebContent" debug="0" reloadable="false"/>

放到你新建的xml文件中。例如:我有以下三个工程: OA、CRM、ERP,那么就需要有oa.xml、crm.xml、erp.xml。然后再新建一个文件夹tep(名字随意),这个文件夹用来存放不需要部署的项目的xml文件。比如:我现在不想部署OA这个项目,那么直接把oa.xml放到tep文件夹下就ok了,下次想部署了在拿出来就是了,有木有很方便呢!

时间: 2024-12-07 21:36:23

tomcat下部署项目的流程和遇到的问题笔记的相关文章

在Tomcat下部署项目的几种方式

一.静态部署1.直接将web项目文件件拷贝到webapps 目录中     Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用.所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹.一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到.具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等.也可以用 cmd 命令:jar -cvf mywa

tomcat下部署了多个项目启动报错java web error:Choose unique values for the &#39;webAppRootKey&#39; context-param in your web.xml files

应该是tomcat下部署了多个项目且都使用log4j. <!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root".但最好设置,以免项目之间的名称冲突. 定义以后,在Web Container启动时将把ROOT的绝对路径写到系统变量里. 然后log4j的配置文件里就可以用${webName.root }来表示Web目录的绝对路径,把log文件存放于webapp中. 此参数用于后面的“Log4jConfigListener”

一个Tomcat下部署多个项目异常:org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean 的解决方法

内容简介 在测试服务器上Tomcat下部署两个Spring boot项目,总是一个能启动成功,另一个启动不成功.这两个war包单独部署均能正常启动. 查看日志:启动时报出 org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean 的异常. 本文主要说明这个问题的解决方法(我的情况用下面的方法能解决). 异常信息(部分) Error starting ApplicationCont

Java Web开发: Tomcat中部署项目的三种方法

web开发,在tomcat中部署项目的方法: 注意大小写 1.在conf目录中新建Catalina\localhost目录,在该目录中新建一个xml文件,名字可以随意取,只要和当前文件中的文件名不重复就行了,改xml文件的内容为: <Context path="/qxmobile"  docBase="/usr/local/webroot/qxmobile" reloadable="false"  debug="0" p

eclipse maven项目中使用tomcat插件部署项目

maven的tomcat插件部署web项目,我简单认为分两种,一种是部署到内置tomcat,另一种是部署到安装的tomcat. 第一种部署,默认是部署在内置tomcat的8080端口,如果不需要改端口及其他设置,完全可以不用在pom中配置tomcat插件 如果需要改端口,可参考如下配置: <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId&g

log4j和web.xml配置webAppRootKey 的问题(一个tomcat下部署多个应用)

转自:http://blog.csdn.net/arvin_qx/article/details/6829873 在tomcat下部署两个或多个项目时,web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为“webapp.root”,如下: <!-- 应用路径 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>webapp.r

Tomcat下设置项目为默认项目

项目的实际使用中经常需要将当前项目设为tomcat的默认项目,而不是进入到tomcat的页面,有几种方法可以实现,注意第二种.第三种情况需要先删除webapps下的ROOT目录,否则会失败. 一.将自己的项目改名为ROOT注意项目名称要大写 如果改完后没生效,建议清空tomcat中的work目录(缓存) 二.修改配置文件server.xml 增加<Context path="" docBase="Cluster" debug="0" rel

TomCat下部署接口测试环境

Tomcat目录结构说明 bin Linux或windows平台上可执行脚本文件,如果启动和关闭Tomcat的脚本 conf Tomcat服务器的各种全局配置文件,其中包括:server.xml:Tomcat的主要配置文件,服务器配置信息,如端口号.虚拟机等 tomcat-user.xml:Tomcat用户的文件,保存tomcat的用户名.密码.角色信息 web.xml:部署描述文件,注册了很多MIME类型,即文档类型 lib 所有jar文件 logs 执行时的日志文件比如启动报错,会保存在该目

同一个Tomcat下不同项目之间的session共享

最近发现项目运行过程中经常会抛出一个 NullPointerException的异常,经检查发现异常出现的地方是日志模板,一阵检查,正常无误 (把所有记录日志的地方都点了一遍,心里是崩溃的),万念俱灰下突然想起来还有一个项目的业务也连接到这个项目,抱着试试的心态去那里 执行了下方法,果然,异常出现了,项目A里获取不到项目B的session.无奈,根据资料做了个session共享,具体方法如下: 项目名称 A:testA,B:testB 1 : 修改Tomcat---conf----server.