Tomcat部署Plutext docx-html-editor时表单跳转404错误解决方法
Plutext docx-html-editor 部署Tomcat后表单提交跳转404问题
问题描述
- 将Plutext的docx-html-editor war包部署至Tomcat服务器后,
index.html可正常渲染 - 提交表单跳转至其他页面时,出现404错误:
The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. - 已尝试操作:更换Maven插件版本、将javax servlet替换为最新的jakarta servlet
- 相关配置:pom.xml构建配置与Web.xml Servlet配置见附图
排查与解决方向
1. 核对Servlet映射路径与表单Action
- 确认web.xml(或Servlet注解)中配置的
url-pattern与表单的action路径完全匹配。比如表单提交路径为/process,但Servlet映射的是/editor/process,就会触发404。 - 注意Tomcat上下文路径:如果war包部署时上下文不是根路径(例如war包名为
docx-editor.war,上下文路径为/docx-editor),表单action需带上上下文路径,或使用相对路径(如action="./process")。
2. 确保Jakarta Servlet适配完全
从javax切换到jakarta时,需完成以下全量替换:
- pom.xml中所有Servlet相关依赖替换为Jakarta版本,例如:
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.0.0</version> <scope>provided</scope> </dependency> - 修改web.xml的根命名空间为Jakarta EE规范:
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> - 代码中所有Servlet相关类的导入包从
javax.servlet.*改为jakarta.servlet.*,比如HttpServletRequest、HttpServlet等。
3. 验证Maven打包的正确性
- 解压war包,检查
WEB-INF/classes目录下是否存在对应Servlet的class文件,WEB-INF/lib目录是否包含所有必要依赖包。 - 确认war包目录结构符合规范:
index.html位于war根目录,配置文件在WEB-INF下,编译后的类文件在WEB-INF/classes。
4. 通过Tomcat日志定位根源
查看Tomcat安装目录下logs/catalina.out或localhost.log文件,搜索表单提交请求的日志记录,通常能找到更详细的错误信息(如Servlet类找不到、映射配置错误等),直接定位问题原因。
内容的提问来源于stack exchange,提问作者Dhruvin Moradiya
相关产品推荐
相关产品推荐

