【翻译】Tomcat 6.0 部署与发布

本篇参考Tomcat官方文档:《First Webapp》翻译,并结合自己的开发经验介绍关于tomcat部署以及发布的相关内容。

1 目录结构

  在tomcat中所有的应用都是放置在CATALINA_HOME/webapps下,其中CATALINA_HOME对应的是你的tomcat的根目录。

  由于Servlet2.2之后的版本规范规定,tomcat中应用的目录结构都要满足固定的格式,这样便于规范一致性。

  放置在webapps下的文件通常是两种格式:一种压缩好的项目文件,比如war包!一种是正常的文件夹。

  如果是war包这种项目文件,tomcat会在启动后自动的把它解压缩到当前目录,变成可访问的文件夹。

  目录结构包括如下:

/apps
    |------/WEB-INF
            |------/classes 编译的字节码文件
            |------/lib 需要的类库,jar包
            ------web.xml
    |------/META-INF
            ------context.xml
    ------普通前端页面,jsp等等

  基本的内容细节也如上面描述的一样。

  其中重点是 web.xml 文件,这个文件也叫做部署描述符,用于配置web应用的相关信息。

  需要注意的是:

  注意相同项的配置顺序,tomcat会按照配置顺序进行执行或者加载。

  需要注意的地方比如过滤器,还有一些页面的加载。

  其中各项的含义,百度一下也略知一二

<web-app>
<display-name></display-name>定义了WEB应用的名字
<description></description> 声明WEB应用的描述信息   

<context-param></context-param> context-param元素声明应用范围内的初始化参数。
<filter></filter> 过滤器元素将一个名字与一个实现<a href="http://www.cnblogs.com/bukudekong/archive/2011/12/26/2302183.html">javax.servlet.Filter</a>接口的类相关联。
<filter-mapping></filter-mapping> 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
<listener></listener>servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。
                     Listener元素指出事件监听程序类。
<servlet></servlet> 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。
<servlet-mapping></servlet-mapping> 服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。
            <span style="color: #008000;">  但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。</span>在更改缺省URL时,使用servlet-mapping元素。   

<session-config></session-config> 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。
          可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。   

<mime-mapping></mime-mapping>如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。
<welcome-file-list></welcome-file-list> 指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。
<error-page></error-page> 在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。
<taglib></taglib> 对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使你能够更改TLD文件的位置,
                  而不用编辑使用这些文件的JSP页面。
<resource-env-ref></resource-env-ref>声明与资源相关的一个管理对象。
<resource-ref></resource-ref> 声明一个资源工厂使用的外部资源。
<security-constraint></security-constraint> 制定应该保护的URL。它与login-config元素联合使用
<login-config></login-config> 指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。
<security-role></security-role>给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素
                   的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。
<env-entry></env-entry>声明Web应用的环境项。
<ejb-ref></ejb-ref>声明一个EJB的主目录的引用。
< ejb-local-ref></ ejb-local-ref>声明一个EJB的本地主目录的应用。
</web-app>   

  比较常用的就是监听器,过滤器,servlet,session管理,初始化参数等等。

  classes 文件夹下放置的是编译出的.class文件,比如你定义的某个包:com.test.hello.java 经过tomcat的启动发布后,就会在响应的应用下的classes文件夹下找到com/test/hello.class文件。类似的servlet, bean, 普通的java类都会编译到此处。

  lib 文件夹下放置的是项目应用的jar包。比如使用了SSH,在项目引用了jar包,最后都会放在这里。这个文件夹下的jar文件是不会编译到classes文件夹下的。详细信息参考tomcat的类加载机制。

  另外呢,这个文件夹下的jar包是属于应用自己使用的。tomcat根目录下还有一个lib文件夹,这里面存放着基本的servlet和jsp需要的jar包。

  如果有一定开发经验的朋友会发现,有时候自己在IDE里面开发,会莫名其妙的报一些错误。但是这些错误并不影响最后的发布。这就是因为在开发时,IDE没有找到对应的jar包,这些jar包存放在tomcat中。当应用发布时,会自动的寻找该文件夹,也就不会报错了。

  解决办法,就是再开发时,把tomcat的lib文件夹加入到IDE的编译环境中。

  context.xml 常常用语配置一些运行时改变的参数,这样tomcat可以定期扫描该文件,进行相应的操作。

  为什么要有这个文件呢?

  就是因为其他的配置文件比如server.xml都是tomcat在启动时读取的信息,运行时是不能改变的,因此把一些动态的信息在这里设定就可以运行时期动态加载了。常用的就是配置数据源JNDI,其中详细的内容会在后文介绍配置文件的时候讲解。

2 部署

  什么是部署?

  其实就是把开发完的代码放在tomcat中,如果使用的是记事本开发,就直接拷贝到webapps下。

  如果使用的是IDE开发,则需要把tomcat集成到IDE中,并配置代码的映射路径。

  在IDE中直接右键tomcat--->Add and Remove...

  如果发现不能把左边的项目添加到右边,并提示错误。则检查servelt的版本。通常是由于servlet与tomcat版本不一致导致,版本关系参考:

  举个例子,tomcat6 仅支持2.5之前的servlet版本,以及1.5之后的JDK版本。、

3 发布

  发布就是把应用中的代码进行编译和组织,使用户可以直接访问。

  就像生产汽车一样,tomcat负责把各个零件进行组装(把代码进行编译组织),最后直接把一个可以运行的车子(可访问的应用)摆在用户面前。

  发布方法:

  1 直接在tomcat中运行:运行startup.bat或者startup.sh文件。运行方法参考:tomcat启动

  2 在IDE中启动:

  在server视图中右键tomcat选择start或者直接点击右上角的DEBUG或者START图标

4 测试

  执行发布后,就可以登录浏览器,输入:http://localhost:8080/[webapp名字] 访问应用了。

  其中8080是端口号,可以通过server.xml或者IDE中配置界面修改。

  文档中也给出了线程池和SSL的配置方式

  也可以在IDE中直接双击server视图中的tomcat选项,在弹出的配置界面,修改端口号,记得保存。

  localhost为主机名:也可以使用 本地地址127.0.0.1,或者本地IP地址[可以同ipconfig /all查询]

时间: 2024-08-25 17:32:49

【翻译】Tomcat 6.0 部署与发布的相关文章

Solr5.4.0部署到Tomcat

所用工具 下载 solr 5.4.0 版本:http://www.apache.org/dyn/closer.lua/lucene/solr/5.4.0 下载 Tomcat(6以上版本),另外可以根据系统下载 32 位或者64位版本:http://tomcat.apache.org/pasting 方法步骤 1.解压 Tomcat 到一个目录,例如 F:\Apache\Tomcat 2.将 solr 压缩包中 solr-5.4.0/ D:\solr-5.4.0\server\solr-webap

构建Apache Tomcat 6.0 Servlet/JSP 容器

构建Apache Tomcat 6.0 Servlet/JSP 容器 这个子项目包含了Tomcat 6.0的源代码,一个实现了Java Community Process http://www.jcp.org/ 的Servlet2.5和JSP2.1标准的容器. 注意:如果你只需要运行Tomcat,没有必要去构建它,你可以非常方便的下载一个二进制发布包.它是跨平台的.阅读RUNNING.txt文件,它介绍了怎样去运行它. 请按以下步骤来从源代码构建一个Tomcat的二进制发布版本: 下载并安装JD

【SSH网上商城项目实战27】域名空间的申请和项目的部署及发布

前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响项目的部署和发布,我们可以先来玩一把,这一节主要介绍下域名空间的申请以及项目的部署和发布流程. 1. 域名空间的申请 作为一个伟大的屌丝,肯定没钱买域名空间,很自然的想到去申请个免费的,现在免费的域名空间也很多,我在福佳jsp技术网上申请了一个试用期是15天的,大家也可以去申请个玩玩,反正作为学习,这已经足够了,当然,如果要长期的肯定要付费的.注册过程我截几个图,如下: 然后下一步,最后开通如下: 建议把上面这些信息

【Tomcat 6.0官方文档翻译】—— 简介

介绍 本篇是Apache Tomcat(Servlet/JSP容器)的文档概要,Apache tomcat 6是基于Servlet2.5和jsp2.1规范,并增加了有利于开发web应用程序和服务的一些特性. 可以参考详细的文档描述,下面简单的讲解: 使用手册 下面文档可以帮助你下载,安装和使用tomcat6的一些特性. 1 介绍:简单的介绍tomcat 2 启动:在多种平台下如何安装和启动tomcat 3 第一个web应用程序:主要包括:你的web应用程序的资源树的结构,应用程序的结构和部署描述

在Tomcat服务器上部署web应用程序常见的方法

一般在tomcat服务器上部署 java web应用程序有两种方式:静态和动态 一.静态部署 静态部署即在启动tomcat服务器之前部署好我们的web应用程序,只有当tomcat服务器启用后,我们的web应用程序才能被访问) 1.利用tomcat自动部署 将web应用程序拷贝到/usr/local/tomcat/webapps/下,然后重启tomcat服务器即可,此时由于配置文件配置了autoDeploy="true,tomcat启动此将自动加载该web应用 2.修改server.xml文件部署

Jenkins+Maven+Github+Tomcat+shell实现自动化集成发布

Jenkins+Maven+Github+Tomcat+shell实现自动化集成发布在做这个工作得时候我查了很多网上资料,比较杂乱,最终在一名叫ianjinsong作者得文章中获得启发,还是要感谢这位仁兄!一.环境准备:Jenkins+Tomcat服务器:106.12.93.190(百度云主机,测试Jenkins使用)Tomcat服务器:118.24.137.86 (腾讯云主机,测试发布ZrLog项目专用)Github服务器:https://github.com/longyueyang/test

tomcat 说明及部署

一.tomcat简介 二.tomcat安装配置 三.tomcat配置文件说明 四.tomcat虚拟机配置 五.nginx反向代理tomcat及动静分离 六.apache反向代理tomcat 七.apache ajp反向代理tomcat 八.server status配置 九.host-manager配置 一.tomcat简介 Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和Ja

Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds

用SSM搭建的项目,部署时出现了以下错误 Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor. 启动时间设置得太短,导致无法正常启动. 我使用的是MyEclipse2015,直接通过页面进行修改 也可以通过修改配置文件的方式解决:

Server Tomcat v7.0 Server at localhost was unable

错误:Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds 错误提示就是我们限定了部署的时间导致的错误. 修改 workspace\.metadata\.plugins\org.eclipse.wst.server.core\servers.xml文件. 把其中的start-timeout="45" 改为  start-timeout="100" 或者更长,根据不同同