修改适配金蝶部署

This commit is contained in:
sh
2025-12-01 11:39:50 +08:00
parent be44ee8c54
commit 6c19e45f10
2 changed files with 40 additions and 0 deletions

View File

@@ -0,0 +1 @@
org.hibernate.validator.HibernateValidator

View File

@@ -0,0 +1,39 @@
package com.ruoyi.framework.config;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Configuration
public class ClassloaderConfig {
@PostConstruct
public void bindAppClassLoader() {
ClassLoader appClassLoader = this.getClass().getClassLoader();
Thread.currentThread().setContextClassLoader(appClassLoader);
System.out.println("已强制绑定线程类加载器:" + appClassLoader);
// 重点:主动加载 Tomcat WebSocket 核心类,确保类加载器锁定
try {
// Tomcat WebSocket 容器类(冲突核心类)
appClassLoader.loadClass("org.apache.tomcat.websocket.server.WsServerContainer");
// Tomcat WebSocket 初始化类
appClassLoader.loadClass("org.apache.tomcat.websocket.server.WsServletContainerInitializer");
// Spring WebSocket 适配类
appClassLoader.loadClass("org.springframework.web.socket.server.standard.ServerEndpointExporter");
// Jakarta WebSocket API 类(应用内依赖)
appClassLoader.loadClass("jakarta.websocket.server.ServerContainer");
System.out.println("WebSocket 核心类已通过应用类加载器锁定,无冲突");
} catch (ClassNotFoundException e) {
System.err.println("应用类加载器未找到 WebSocket 依赖,检查 spring-boot-starter-websocket 是否正常引入:" + e.getMessage());
throw new RuntimeException("WebSocket 依赖缺失", e);
}
// 验证 Validator 类加载
try {
appClassLoader.loadClass("jakarta.validation.Validator");
System.out.println("Jakarta Validation API 加载成功");
} catch (ClassNotFoundException e) {
System.err.println("Validator 依赖缺失:" + e.getMessage());
}
}
}