0%

Tomcat 部署残留问题解决方案:彻底清理旧项目配置

在 Tomcat 部署项目时,有时会遇到 “新项目无法正常启动”“访问路径冲突”“类加载异常” 等问题,这往往是由于旧项目残留配置或文件未清理干净导致的。本文将详细介绍 Tomcat 中可能残留项目的位置及彻底清理的步骤,确保新项目正常部署。

残留文件 / 配置的常见位置

Tomcat 部署项目后,会在多个目录生成缓存文件或配置,旧项目的残留主要集中在以下位置:

webapps 目录:项目部署文件

webapps 是 Tomcat 默认的应用部署目录,若旧项目未彻底删除,可能导致:

  • 路径冲突(如旧项目与新项目上下文路径相同);
  • 类文件残留(导致类加载异常)。

清理步骤

  • 进入 Tomcat 安装目录下的 webapps 文件夹;
  • 删除所有无关的旧项目文件夹(如 oldappdemo 等);
  • 若使用 WAR 包部署,同时删除对应的 .war 文件(避免 Tomcat 自动重新部署)。

work 目录:编译缓存文件

Tomcat 会将 JSP 编译为 Servlet(.class 文件),并在 work 目录中缓存,旧项目的缓存可能导致:

阅读全文 »

测试页面,无需关心

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

阅读全文 »

修复 “Exception in windowonload: Error An error has occurred iSPlugin.3005” 错误

错误分析

该错误发生在 Internet Explorer 浏览器的 F12 开发者工具加载过程中,具体涉及F12Resources.dll相关组件(如plugin.f12.jsDomExplorerMerged.js等)。错误代码JSPlugin.3005通常与 IE 浏览器的开发者工具组件损坏或版本不兼容有关,可能是由于系统更新不完整、组件文件缺失或损坏导致。

1
错误的文字内容:Diagnostic:Exception in windowonload: Error An error has occurrediSPlugin.3005StackTrace:Error An error has occurredJSPlugin.3005 at getString<!-- more --> (res//C:\Program Files\Internet Explorer\F12Resources.dll/23/pluginhost/plugin.f12.js:5021:17) at ToolWindowHelpers.LoadString (res:f/C:\Program Files\Internet Explorer\F12Resources.dll/23/Common/CommonMergedjs:5803:13) at TabPanes (res://C:\Program Files\Internet Explorer\F12Resources.dll/23/dom/DomExplorerMerged.js:16247:17) at DomExplorerWindow (res://C:\Program Files\Internet ExpIorer\F12Resources.dll/23/dom/DomExpIorerMerged.js:1837:17) at Anonymous function (res://C:\Program Files\Internet Explorer F12Resources.dll/23/dom/DomExplorerMerged.js:18306:25) at EventManager.prototype.dispatchEvent (res://C:\Program Files\Internet Explorer\F12Resources.dll/23/pluginhost/plugin.f12.js:3945:29) at checkAndFirePluginReady (resWC:\Program FilesVntemet Explorer\F12Resources.dll/23/pluginhostlplugin.f12.js:4406:17) at Anonymous function (res://C:\Program Files\Internet Explorer\F12 Resources.dll/23/pluginhost/plugin.f12.js:4412:13)

解决方案

通过安装微软官方发布的补丁可修复该问题,根据系统位数选择对应补丁:

补充说明

  1. 下载补丁后,双击安装文件并按照提示完成安装,安装过程中可能需要关闭 IE 浏览器。
  2. 若安装补丁后问题仍未解决,可尝试以下额外步骤:
    • 重置 IE 浏览器设置(打开 IE → 工具 → Internet 选项 → 高级 → 重置)。
    • 检查系统是否有未安装的重要更新(通过 “控制面板 → Windows Update”)。
    • 重新注册 F12 相关组件:以管理员身份运行命令提示符,输入 regsvr32 "C:\Program Files\Internet Explorer\F12Resources.dll" 并回车。

该补丁主要修复了 IE 开发者工具在特定环境下的组件加载异常,适用于 Windows 7、Windows 8 等系统的 IE 浏览器。

MyBatis 数据源(DataSource)深度解析:从原理到实践(Unpooled/Pooled 与第三方连接池)

MyBatis 的数据源(DataSource)是连接数据库的核心组件,负责管理数据库连接的创建、复用与销毁,直接影响系统的性能与稳定性。系统梳理 MyBatis 内置数据源的实现原理、连接池机制,以及生产环境中主流第三方连接池(HikariCP、Druid)的整合方案,帮助你理解 “连接管理” 的本质并选择合适的数据源。

数据源核心概念与接口规范

在深入 MyBatis 实现前,需先明确数据源的通用规范 —— 所有数据源都遵循 JDBC 标准接口 javax.sql.DataSource,该接口定义了获取数据库连接的核心方法:

1
2
3
4
5
6
7
8
9
10
11
12
public interface DataSource {
// 获取数据库连接
Connection getConnection() throws SQLException;
// 带用户名/密码的连接获取
Connection getConnection(String username, String password) throws SQLException;
// 获取连接池配置(可选)
PrintWriter getLogWriter() throws SQLException;
void setLogWriter(PrintWriter out) throws SQLException;
// 连接超时时间
int getLoginTimeout() throws SQLException;
void setLoginTimeout(int seconds) throws SQLException;
}

MyBatis 对数据源的封装遵循 “工厂模式”:通过 DataSourceFactory 接口创建不同类型的 DataSource,核心实现如下:

组件 作用 MyBatis 内置实现
DataSource 管理数据库连接 UnpooledDataSource(无池)、PooledDataSource(有池)
DataSourceFactory 创建 DataSource 的工厂接口 UnpooledDataSourceFactoryPooledDataSourceFactory

MyBatis 内置数据源:UnpooledDataSource(无池实现)

UnpooledDataSource 是 MyBatis 最简单的数据源实现,每次获取连接都会创建新的 Connection 对象,不进行连接复用,适合简单测试场景,不推荐生产环境使用。

阅读全文 »