Tomcat8使用数据源的方式一(Tomcat8端局部配置)
在Tomcat8的conf/Catalina/localhost目录中添加xml文件使用数据源
此种方式发布项目,是最佳选择。因为这样对tomcat8的入侵性最小,只需要新增一个xml配置文件,不需要修改Tomcat8的
conf/server.xml、 conf/web.xml、conf/context.xml文件和项目的web.xml文件;即在以上文件中不需要包含有关数据源的任何信息。而且支持动态解析,修改完代码直接生效(修改配置除外)。
此种方式发布项目的步骤如下:
1.首先在eclipse中配置好tomcat的服务器。
2.如果采用Eclipse或MyEclipse开发,假设建立Dynamic Web Project项目的工程目录为 D:\javaProject\TestPro2
3.在tomcat8服务器的conf\Catalina\localhost目录下新建RenYi.xml文件(文件名可任意取),内容如下:
<Context path="/RenYi" docBase="D:\javaProject\TestPro2\WebContent" debug="0" privileged="true">
<Resource
name="jdbc/cgmDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="system"
password="linux"
maxIdle="2"
maxWait="5000"
maxActive="4"/>
</Context>
RenYi.xml文件中
path是指项目的发布路径,也就是访问路径,假如像上边那样填写,就要这样访问: http://localhost:8080/RenYi/index.jsp
docBase是指工程项目的WebContent(Eclipse)或WebRoot(MyEclipse)目录,这很好理解。你的项目最终发布,就是发布到这个目录。
上面的配置是将web应用放在tomcat服务器文件夹以外的任何位置,然后通过xml配置文件告诉tomcat如何部署这个web应用。
Tomcat8会首先到conf/Catalia/localhos目录中扫描所有的xml文件,在xml文件中通过docBase="D:\javaProject\TestPro2\WebContent"找到工程项目,并通过path="/RenYi"来指定发布(访问)路径
注意:xml的文件名一定要和path=""中所指定的发布路径一致!在本例中xml文件名必须为:RenYi.xml
而docBase所指向的目录名则不必和path所指向的目录名同名,docBase只要指向工程目录即可,比如:
K:\testWeb\struts_hello\WebContent (针对Eclipse开发的struts_hello工程)
K:\testWeb\struts_hello\WebRoot (针对MyEclipse开发的struts_hello工程)
E:\myWebApps\TestCgm\WebContent (针对Eclipse开发的TestCgm工程)
E:\myWebApps\TestCgm\WebRoot (针对MyEclipse开发的TestCgm工程)
3.在eclipse中启动tomcat8,但不要在tomcat8服务器中部署(加载)该项目
这样的话,通过地址 http://localhost:8080/TestPro/index.jsp 就可访问到项目。
上边是比较常见的用法,但很多时候,我们希望把项目发布到tomcat根目录,这样就不用输入冗长的发布路径,直接输入域名http://localhost:8080就可以访问了。
用这种方法把项目发布tomcat根目录,注意事项如下:
1.为了保险起见,删掉tomcat服务器中的webapps目录下的ROOT文件夹。
2.将xml文件名命名为ROOT(ROOT.xml)
3.将xml中的path设成空(path="")。
这样就可以将项目发布到tomcat根目录了,希望本文对大家有帮助。
Tomcat8使用数据源的方式二(工程项目端局部配置)
在WebRoot/META-INF目录中添加context.xml文件来使用数据源
此种方式在添加数据源时,步骤如下:
1. 需要在工程项目WebRoot的META-INF目录中新建context.xml
context.xml的内容为:
<?xml version='1.0' encoding='utf-8'?>
<Context>
<Resource
name="jdbc/cgmDS2"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="system"
password="linux"
maxIdle="2"
maxWait="5000"
maxActive="4"/>
</Context>
WebRoot/META-INF/context.xml这个文件用来存放关于数据源的配置。在XML内容中,需要有Context标签,然后用Resource标签说明数据源的信息。Name属性指明数据源的JNDI名称是 java:comp/env/jdbc/cgmDS2 其中前缀 java:comp/env是Tomcat固定的,Tomcat提供的JNDI绑定都必须加该前缀。服务器会通过 java:comp/env/jdbc/cgmDS2来查找数据源。driverClassName指明所使用的数据库JDBC驱动。 Url指明Oracle服务器的url地址为 jdbc:oracle:thin:@localhost:1521:orcl其中orcl为Oracle数据库的SID。
Tomcat8使用数据源的方式三(Tomcat端全局配置)
在Tomcat8的conf目录中配置context.xml文件使用数据源
在Tomcat8服务器的conf/context.xml文件的<Context>标签中添加<Resource>标签内容如下:
<Resource
name="jdbc/cgmDS3"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="system"
password="linux"
maxIdle="2"
maxWait="5000"
maxActive="4"/>
这种配置方法加入的数据源,在Tomcat8中所有的web应用中都可以使用。但这种方法如果使用不当会使所有的应用都受到影响,因此并不推荐这种方法