本文为整理型内容:依据东方通官方信息及社区公开资料整理,均已注明出处,具体以官方最新文档为准。
结论先给:TongWeb 7 部署 WAR 包,问题大多集中在四类——JDK 版本不匹配、类找不到、类加载冲突、前端静态项目 404。另外它和 Tomcat 的类加载机制不同,很多"Tomcat 上正常、TongWeb 上报错"的问题都源于此。
一、环境说明
1.1 TongWeb 7 定位
东方通应用服务器软件 TongWeb V7.0 是遵循 Java EE 7 规范的企业级应用服务器,提供负载均衡、集群、Web Service、数据库连接池、事务处理与安全管理能力。TongWeb 8 起逐步适配 Jakarta EE 规范,两者命名空间不同(javax vs jakarta),部署包不能混用。
1.2 JDK 兼容性
- 基础要求:TongWeb 7 要求 JDK 7u40 及以上(官方),生产环境推荐 JDK 8 LTS,兼容性最广泛。
- JDK 11:需使用 TongWeb 免安装版;安装版(如 7.0.4.2)对 JDK 8 有强依赖,预装 JDK 11 存在二进制兼容问题(社区实践总结)。
- HTTPS 特殊要求:SSL 协议用 TLS 1.3 时,JDK 要求 1.8.0_261 及以上;启用国密认证时,JDK 要求 8-11。
- TongWeb 7.0.4+ 与框架版本:7.0.4 支持更新的 JDK 版本,但不支持 Spring Boot 3.x / Spring Framework 6.x(需要 Jakarta EE 9+,对应 TongWeb 8.0)。
二、问题清单
问题 1:部署后访问 404
现象:WAR 包部署成功,访问页面返回 404。
原因与解决:
- 前端静态项目缺少 web.xml(社区常见)。TongWeb 部署 Vue 等前端静态项目时,需要在 dist 目录下新建
WEB-INF文件夹并放入 web.xml,404 时跳回首页:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
</web-app>
*tongweb.properties 中配置了 .jar 过滤(社区经验):会导致 jar 包内
/META-INF/resources/下的静态资源 404。移除该过滤配置,重启 TongWeb 并强制刷新浏览器。访问路径/应用前缀错误:确认应用前缀(context path)是否设置为
/,静态资源路径与配置是否一致。多项目部署冲突:TongWeb 默认自带一个虚拟主机 server,部署多个项目时需要创建多个虚拟主机和 HTTP 通道,避免端口冲突。
问题 2:ClassNotFoundException / NoClassDefFoundError
现象:应用启动或运行时抛出类找不到异常。
原因与解决:
JAXB 相关类缺失:从 JDK 9 开始,JAXB 等模块被移出 Java SE 核心库。应用(尤其 Spring Boot 或老框架)在 JDK 9+ 上运行时,需在
WEB-INF/lib下显式添加 JAXB API 及实现包(javax.xml.bind:jaxb-api、com.sun.xml.bind:jaxb-impl),注意包版本冲突。EL API 缺失:报
java.lang.NoClassDefFoundError: javax.el.ELManager表示缺少 EL API jar。常见处理:从 Tomcat 的 lib 目录拷贝el-api.jar到 TongWeb 的 lib 目录,重启后重新部署(社区实践)。Spring Boot 内置 Tomcat 未排除:Spring Boot 项目部署到 TongWeb,必须在 pom.xml 中排除
spring-boot-starter-tomcat依赖,并将打包方式改为 war,否则内置 Tomcat 类库与 TongWeb 冲突:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
问题 3:类加载冲突 / NoSuchMethodError
现象:应用在 Tomcat 上运行正常,部署到 TongWeb 后报 NoSuchMethodError 等错误。
原因:应用 WEB-INF/lib 下多个 jar 包含同名类,Tomcat 与 TongWeb 7 的 jar 加载顺序不同,导致引用到不同版本的类。
解决:在应用 WEB-INF/lib 下新增 tongweb-web.xml,按优先级列出冲突的 jar 包,TongWeb 将按排列顺序加载(具体标签写法以东方通官方文档为准):
<?xml version="1.0" encoding="UTF-8"?>
<tongweb-web-app>
<jar-orders>
<jar-order jar-name="commons-codec-1.10.jar" />
<!-- 按优先顺序列出所有冲突的 jar 包 -->
</jar-orders>
</tongweb-web-app>
也可以用 TongWeb 控制台的"类加载分析工具"→“类资源分析/类冲突检测"定位冲突。
问题 4:web.xml 版本不兼容
现象:应用部署失败,提示 web.xml 解析错误。
说明:TongWeb 7 遵循 Java EE 7 规范,建议应用采用的 Java EE 版本与 TongWeb 版本对应;使用超出 TongWeb 7 支持的规范特性(如 Servlet 4.0 特性)会解析失败。
三、达梦数据源配置步骤
3.1 准备驱动
将达梦 JDBC 驱动(DmJdbcDriver18.jar)复制到 TongWeb 的 lib 目录。若应用使用 Hibernate 等持久化框架,还需要达梦提供的方言包(如 DmDialect-for-hibernate3.0.jar)。
建议:TongWeb 数据源与应用共用同一份驱动(放 lib 目录即可);若一个 TongWeb 上配置多个同类型不同版本的数据库,需把驱动放在其他目录并在配置数据源时指定。
3.2 配置 server.xml
在 TongWeb 的 conf 目录下找到 server.xml,添加 Resource 配置:
<Resource
name="jdbc/DamengDS"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="your_username"
password="your_password"
driverClassName="dm.jdbc.driver.DmDriver"
url="jdbc:dm://127.0.0.1:5236/cs"
/>
URL 格式:jdbc:dm://主机:端口/数据库名(达梦默认端口 5236)。
3.3 配置 context.xml(可选)
在 conf 目录下找到 context.xml,添加 ResourceLink:
<ResourceLink
global="jdbc/DamengDS"
name="jdbc/DamengDS"
type="javax.sql.DataSource"
/>
3.4 应用中通过 JNDI 使用
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/DamengDS");
Connection conn = ds.getConnection();
3.5 连接池参数建议
- 最小/最大连接数:按业务并发设置,最大连接数不得超过数据库可用连接数
- 创建连接时验证:建议开启,用
connection.isValid()验证 - 空闲连接检查:建议开启,避免长期占用数据库连接
四、FAQ
Q1:TongWeb 7 和 Tomcat 的类加载机制有什么不同?
TongWeb 遵循标准双亲委派模型,默认优先加载 $TONGWEB_HOME/lib 下的 jar,而非应用自身的 WEB-INF/lib;Tomcat 则优先加载 Web 应用自身的类库。因此应用在 Tomcat 正常、TongWeb 报类冲突/类找不到很常见。另外 TongWeb 是完整应用服务器(内置 EJB 容器、JMS 服务),Tomcat 本质是 Servlet 容器。
Q2:TongWeb 7 部署 Spring Boot 项目需要注意什么?
排除内置 Tomcat(见问题 2-3)、打包方式改为 war、启动类继承 SpringBootServletInitializer 并重写 configure 方法。注意 TongWeb 7.0.4 不支持 Spring Boot 3.x,需 TongWeb 8.0。
Q3:TongWeb 7 支持自动部署吗?
支持。将 WAR 包放入 ${TongWeb安装目录}/autodeploy 目录即可自动部署;也可在控制台选择"重部署”。
Q4:TongWeb 管理控制台的默认地址和账号?
控制台地址 http://<IP>:9060/console,默认用户名/密码为 thanos/thanos123.com。首次登录必须修改密码(大写+小写+数字+特殊字符 4 类组成,长度不少于 10 位)。注意:默认口令是安全审计重点检查项,上线前务必修改。
Q5:部署后访问还是 404,还有哪些排查方向?
- 应用前缀是否设置为
/ - 虚拟主机和 HTTP 通道配置是否正确
- 端口是否被占用
- 是否有 jar 包冲突导致应用未完全启动
来源:东方通官网(tongtech.com)产品文档、TongWeb 管理控制台、达梦官方 JDBC 文档,以及 CSDN、博客园等社区实战帖。整理于 2026-08,部分细节来自社区实践,生产环境部署前建议联系东方通技术支持获取官方最新文档。