Tomcat部署web项目指导(部署及数据源配置)

共两部分:第一部分介绍部署,第二部分介绍数据源配置

一、静态部署
1、直接将web项目文件件拷贝到webapps 目录中
Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war myweb 
webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
将appBase修改即可。 
2、在server.xml中指定 
在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。

在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: 
<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged="true"> 
</Context>
或者
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>
或者
<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>

说明:
path是虚拟路径;
docBase 是应用程序的物理路径;
workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;

debug 则是设定debug level, 0表示提供最少的信息,9表示提供最多的信息
privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet
reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署
antiResourceLocking和antiJARLocking 热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。
3、创建一个Context文件 
在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:
<Context path="/hello" docBase="E:\workspace\hello\WebRoot" debug="0" privileged="true"></Context>

tomcat自带例子如下:
<Context docBase="${catalina.home}/server/webapps/host-manager"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。
4、注意:
删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。
二 动态部署
登陆tomcat管理控制台:http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。
在Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。
XML Configration file URL中要指定一个xml文件,比如我们在F:\下建立一个hmcx.xml文件,内容如下: <Context reloadable="false" />其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WAR or Directory URL:中键入F:\hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。

如果部署.war文件还有更加简单的方式,下面还有个Select WAR file uploae点击浏览选择.war文件,然后点击Deploy也可以。

 
 
 

JNDI(Java Naming Directory Interface)
1.通过DataSource的名字查找对应的DataSource; 

2.通过一个DataSource在连接池中获得一个Connection; 


一,全局数据源的配置(配置了一个数据源后任何web应用都能使用)此方法没验证过

(1)将数据库的驱动程序复制到tomcat\lib中; 


(2)在server.xml中加入: 
 

Java代码  收藏代码
  1. <Context path="/Test" docBase="E:\JAVA WEB" reloadable="true">    <!-- 数据源需要在Context中配置-->  
  2.    <Resource name="jdbc/xiazdong"                                    <!-- 数据源名称-->  
  3.     auth="Container"  
  4.     type="javax.sql.DataSource"  
  5.     maxActive="100"                                        <!-- 最大连接数-->  
  6.     maxIdle="30"                                            <!-- 最小连接数-->  
  7.     maxWait="10000"                                    <!-- 最大等待时间-->  
  8.     username="root"  
  9.     password="123456"  
  10.     driverClassName="com.mysql.jdbc.Driver"  
  11.     url="jdbc:mysql://localhost:3306/xiazdong"/>  
  12.   </Context>  

 
(3)在web.xml中加入:

Java代码  收藏代码
  1. <resource-ref>  
  2.   <description>DB Connection</description>  
  3.   <res-ref-name>jdbc/xiazdong</res-ref-name>  
  4.   <res-type>javax.sql.DataSource</res-type>  
  5.   <res-auth>Container</res-auth>  
  6.  </resource-ref>  

 


二,局部数据源配置

1,将数据库的驱动程序复制到tomcat\lib中;
2,在web应用根目录的meta-inf目录下新建context.xml文件,配置自己所需的数据源。可同时配置多个。

Java代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Context antiJARLocking="true" path="/ipnet">  
  3.     <Resource name="jdbc/ResourceManager" auth="Container"  
  4.         type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"  
  5.         username="rm" password="rm1234" driverClassName="oracle.jdbc.driver.OracleDriver"  
  6.         removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"  
  7.         url="jdbc:oracle:thin:@192.168.22.6:1521:orcl" />  
  8.     <Resource name="jdbc/AlarmDb" auth="Container" type="javax.sql.DataSource"  
  9.         maxActive="100" maxIdle="30" maxWait="10000" username="fm5" password="fm51234"  
  10.         driverClassName="oracle.jdbc.driver.OracleDriver" removeAbandoned="true"  
  11.         removeAbandonedTimeout="60" logAbandoned="true"  
  12.         url="jdbc:oracle:thin:@192.168.22.6:1521:orcl" />  
  13.     <Resource name="jdbc/PerformanceDb" auth="Container"  
  14.         type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"  
  15.         username="nhm" password="nhm1234" driverClassName="oracle.jdbc.driver.OracleDriver"  
  16.         removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"  
  17.         url="jdbc:oracle:thin:@192.168.22.6:1521:orcl" />  
  18. </Context>  

 
最后在代码中引用即可: 

 Context ctx = new InitialContext(); 
dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/ResourceManager")






posted @ 2017-07-03 17:46  nobug的世界  阅读(7127)  评论(0编辑  收藏  举报