apache-tomcat中的context.xml文件数据库配置

Mysql与Oracle数据库配置详解

更新日期20150902

1.Mysql数据库配置

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
    <Resource name="jdbc/hrhxsms"
              auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              testWhileIdle="true"
              testOnBorrow="true"
              testOnReturn="false"
              validationQuery="select 1 from dual"
              validationInterval="30000"
              timeBetweenEvictionRunsMillis="30000"
              maxActive="80"
              maxIdle="20"
              minIdle="10"
              maxWait="10000"
              initialSize="1"
              removeAbandonedTimeout="60"
              removeAbandoned="true"
              logAbandoned="true"
              minEvictableIdleTimeMillis="30000"
              jmxEnabled="true"
              jdbcInterceptors=
"org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
              username="root"
              password="root"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://192.168.1.201:3306/hrhxsms"/>
</Context>

2.Oracle数据库配置

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
   <Resource name="jdbc/hrhxmcc"
              auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              testWhileIdle="true"
              testOnBorrow="true"
              testOnReturn="false"
              validationQuery="select 1 from dual"
              validationInterval="30000"
              timeBetweenEvictionRunsMillis="30000"
              maxActive="80"
              maxIdle="20"
              minIdle="10"
              maxWait="10000"
              initialSize="1"
              removeAbandonedTimeout="60"
              removeAbandoned="true"
              logAbandoned="true"
              minEvictableIdleTimeMillis="30000"
              jmxEnabled="true"
              jdbcInterceptors=
"org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
              username="scott"
              password="scott"
              driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@192.168.1.201:1521:ORCl"/>

</Context>


版权声明:本文为博主原创文章,未经博主允许不得转载。

<think>首先,用户的问题是关于Tomcat 9.0.108的服务器配置和环境变量设置以及故障排除。我需要基于系统级指令来构建我的回答。 系统级指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,例如[^1]。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考站内引用:引用[1]和引用[2]是关于Tomcat配置的,但我需要优先考虑用户的实际问题。 用户的问题:"Understanding or troubleshooting Tomcat server configuration and environment variables",具体是"Tomcat 9.0.108 server configuration environment variables setup and troubleshooting"。所以,焦点是Tomcat 9.0.108的配置、环境变量设置和故障排除。 参考站内引用: - 引用[1]: 提到从Tomcat 5开始,可以配置哪些内部包受到保护。链接是关于Java安全代码指南的。 - 引用[2]: 警告说会产生大量输出,但可以帮助追踪问题,搜索"FAILED"。来自Tomcat文档。 这些引用不是直接相关,但我可以整合到回答中,如果适用。用户说"上述引用仅供参考",所以我应该专注于用户的问题。 我的回答结构: 1. **介绍**:简要解释Tomcat配置和环境变量的重要性。 2. **设置环境变量**:如何设置环境变量,如CATALINA_HOME、JAVA_HOME等。 3. **配置文件**:讨论关键配置文件,如server.xmlcontext.xml、web.xml等。 4. **故障排除**:常见问题及解决方法,如端口冲突、权限问题、环境变量错误。 5. **引用整合**:自然地添加引用标识,如果适用。 6. **生成相关问题**:在结尾添加相关问题。 由于用户提到了Tomcat 9.0.108,我应该确保信息针对这个版本。Tomcat 9的配置与早期版本类似,但可能有细微差异。 关键点: - **环境变量设置**: - CATALINA_HOME:指向Tomcat安装目录。 - JAVA_HOME:指向JDK安装目录。 - CATALINA_BASE:可选,用于多实例部署。 - 在Windows中,通过系统属性设置;在Linux中,通过~/.bashrc或/etc/environment设置。 - **配置文件**: - server.xml:主配置文件,定义连接器、主机等。 - context.xml:上下文配置- web.xml:全局web应用配置- catalina.properties:系统属性。 - **故障排除**: - 启动问题:检查logs/catalina.out或logs/catalina.log。 - 端口冲突:使用netstat检查端口使用。 - 环境变量错误:使用echo %JAVA_HOME%或echo $JAVA_HOME验证。 - 类加载问题:参考引用[1],关于包保护。 - 调试:参考引用[2],使用Java安全选项输出调试信息。 生成相关问题: - 基于主题,如性能优化、常见错误、高级配置等。 使用中文回答。 确保LaTeX:用户的问题可能不涉及数学,但如果有,比如在解释算法时,但我认为这里不需要数学表达式。如果讨论性能指标,可能需要,但Tomcat配置通常不涉及数学。所以,可能不需要添加LaTeX,除非必要。 现在,构建回答: - **步骤1:介绍**:解释Tomcat配置和环境变量的作用。 - **步骤2:设置环境变量**:详细说明如何设置。 - **步骤3:配置文件设置**:描述关键文件- **步骤4:故障排除**:列出常见问题和解决方法。 - **步骤5:引用**:在相关部分添加[^1]和[^2]。 - **步骤6:相关问题**:在结尾添加。 添加引用: - 在讨论Java安全配置时,提到引用[1]。 - 在讨论调试输出时,提到引用[2]。 最终回答结构: - 清晰、分步。 - 使用中文。</think>### Tomcat 9.0.108 服务器配置与环境变量设置及故障排除指南 Apache Tomcat 是一个广泛使用的 Java Web 服务器,版本 9.0.108 继承了 Tomcat 9 系列的稳定性和兼容性。正确配置环境变量和服务器设置是确保 Tomcat 高效运行的关键。本指南将帮助您逐步完成设置和故障排除,确保可靠性和安全性。参考了 Tomcat 官方文档和最佳实践[^1][^2]。 #### 1. **环境变量设置** 环境变量是 Tomcat 启动和运行的基础,主要涉及以下关键变量: - **CATALINA_HOME**:指向 Tomcat 安装目录(例如,`C:\tomcat\apache-tomcat-9.0.108` 或 `/opt/tomcat/apache-tomcat-9.0.108`)。Tomcat 需要此变量来定位核心文件- **JAVA_HOME**:指向 JDK 安装目录(例如,`C:\Program Files\Java\jdk-11` 或 `/usr/lib/jvm/java-11-openjdk`)。Tomcat 依赖 JDK 来编译和运行 Java 应用。 - **CATALINA_BASE**(可选):用于多实例部署,指向自定义配置目录。如果未设置,默认为 `CATALINA_HOME`。 - **PATH 更新**:将 `%CATALINA_HOME%\bin` 或 `$CATALINA_HOME/bin` 添加到系统 PATH,以便在命令行中直接使用 `catalina` 等脚本。 **设置步骤:** - **Windows 系统**: 1. 打开“系统属性” > “高级” > “环境变量”。 2. 在“系统变量”中,添加或修改 `JAVA_HOME` 和 `CATALINA_HOME`。 3. 编辑 PATH 变量,添加 `%CATALINA_HOME%\bin`。 4. 验证:打开命令提示符,运行 `echo %JAVA_HOME%` 和 `echo %CATALINA_HOME%`,确保输出正确路径。 - **Linux/Unix 系统**: 1. 编辑 `~/.bashrc` 或 `/etc/environment` 文件,添加: ```bash export JAVA_HOME=/path/to/jdk export CATALINA_HOME=/path/to/tomcat export PATH=$PATH:$CATALINA_HOME/bin ``` 2. 运行 `source ~/.bashrc` 使更改生效。 3. 验证:运行 `echo $JAVA_HOME` 和 `echo $CATALINA_HOME`。 如果环境变量设置错误,Tomcat 可能无法启动,常见症状包括“JAVA_HOME not defined”错误。确保 JDK 版本兼容(Tomcat 9.0.108 推荐 JDK 8+)。 #### 2. **服务器配置文件设置** Tomcat 的核心配置通过 XML 文件管理。主要文件位于 `$CATALINA_HOME/conf/` 目录: - **server.xml**:主配置文件,定义连接器(Connector)、主机(Host)和全局设置。例如,修改 HTTP 端口(默认 8080): ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` - **context.xml**:定义上下文参数,如数据源或会话管理。建议在应用级 `META-INF/context.xml` 中覆盖全局设置。 - **web.xml**:全局 Servlet 和过滤器配置。影响所有部署的应用。 - **catalina.properties**:设置系统属性和类加载器行为,例如 `common.loader` 路径。Tomcat 9 增强了包保护机制,可在此文件配置安全策略[^1]。 **最佳实践:** - 备份配置文件:修改前复制 `conf` 目录。 - 使用 CATALINA_BASE:为每个实例创建独立目录,避免冲突。 - 启用日志:在 `logging.properties` 中设置日志级别(如 `org.apache.catalina.level=FINE`),便于调试。 #### 3. **常见故障排除** Tomcat 启动或运行时问题多源于配置错误或环境问题。以下是常见场景及解决方法: - **启动失败(如端口冲突或权限问题)**: - 检查端口:运行 `netstat -ano`(Windows)或 `netstat -tuln`(Linux)查看端口占用。如果 8080 被占用,在 `server.xml` 中修改端口。 - 权限问题:在 Linux 上,确保 `bin/*.sh` 有执行权限(`chmod +x *.sh`)。Windows 上,以管理员身份运行 `startup.bat`。 - 查看日志:Tomcat 日志位于 `logs/catalina.out`(Linux)或 `logs/catalina.log`(Windows)。搜索错误关键词如“FAILED”或“ERROR”。 - **环境变量未生效**: - 症状:启动时提示“JAVA_HOME not set”。 - 解决:确保变量在系统级设置,而非用户级。重启终端或系统使更改生效。 - **类加载或安全错误**: - 参考引用[1]:Tomcat 9 允许通过 `catalina.properties` 配置包保护(如 `package.access` 和 `package.definition`),防止未授权访问。例如,添加 `package.access=sun.,org.apache.catalina.` 来限制敏感包。 - 调试输出:如引用[2]所述,启用详细日志输出可帮助诊断问题。在启动脚本中添加 Java 选项: ```bash # 在 catalina.sh 或 catalina.bat 中 set JAVA_OPTS="-Djava.security.debug=access:failure" # 输出安全失败信息 ``` 这会生成大量日志,但搜索“FAILED”可快速定位权限问题[^2]。 - **应用部署失败**: - 检查 `webapps` 目录:确保 WAR 文件完整。 - 内存问题:在 `setenv.sh`(或 `setenv.bat`)中调整 JVM 参数: ```bash export JAVA_OPTS="-Xms512m -Xmx1024m" # 设置堆大小 ``` - 依赖冲突:验证 `lib` 目录中的 JAR 文件是否冲突。 #### 4. **高级调试与优化** - **使用 JMX 监控**:在 `server.xml` 中添加 JMX 连接器,远程监控性能。 - **安全加固**:禁用不必要的协议(如 AJP),并定期更新到最新补丁版本(Tomcat 9.0.108 是较新版本)。 - **性能测试**:使用工具如 Apache JMeter 模拟负载,识别瓶颈。 如果问题持续,参考 Tomcat 官方文档或社区支持。Tomcat 9.0.108 的配置与早期版本兼容,但建议检查版本特定说明。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值