求助:Eclipse无法找到JavaEE 10部署描述符根元素声明
解决Eclipse中Jakarta EE XML配置文件根元素验证失败问题
问题场景
在Eclipse中创建Java Web Application的Maven项目,添加Servlet、Faces、Persistence相关部署描述符后,出现XML根元素声明无法找到的错误,同时提示“Downloading external resources is disabled”。
涉及配置文件代码
persistence.xml
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://jakarta.ee/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"> <persistence-unit name="project" version="3.1"> </persistence-unit> </persistence>
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?> <faces-config 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-facesconfig_4_0.xsd" version="4.0"> </faces-config>
报错信息
- Cannot find the declaration of element 'persistence'
- Cannot find the declaration of element 'faces-config'
- Downloading external resources is disabled.
解决步骤
已启用“Honour all xml schema locations”选项的前提下,尝试以下操作:
开启Eclipse外部资源下载权限
- 打开Eclipse偏好设置:
Window > Preferences - 导航到
XML > XML Files > Validation - 取消勾选
Disable downloading of external resources选项,点击Apply and Close - 右键项目,选择
Validate重新验证
- 打开Eclipse偏好设置:
检查Maven依赖完整性
- 确保项目中添加对应Jakarta EE API的Maven依赖,示例如下:
<!-- Jakarta Persistence API --> <dependency> <groupId>jakarta.persistence</groupId> <artifactId>jakarta.persistence-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- Jakarta Faces API --> <dependency> <groupId>jakarta.faces</groupId> <artifactId>jakarta.faces-api</artifactId> <version>4.0.0</version> <scope>provided</scope> </dependency> - 执行
Maven > Update Project,勾选Force Update of Snapshots/Releases后更新依赖
- 确保项目中添加对应Jakarta EE API的Maven依赖,示例如下:
手动添加XSD文件到本地目录
- 下载对应的XSD文件:
persistence_3_0.xsd、web-facesconfig_4_0.xsd - 将文件放入项目的
src/main/resources/META-INF目录 - 修改配置文件的
xsi:schemaLocation指向本地路径,示例:<!-- persistence.xml 修改示例 --> xsi:schemaLocation="http://jakarta.ee/xml/ns/persistence ./META-INF/persistence_3_0.xsd"
- 下载对应的XSD文件:
检查命名空间与XSD版本匹配
- 确认
persistence的命名空间http://jakarta.ee/xml/ns/persistence与XSD版本persistence_3_0.xsd适配(3.0版本兼容Jakarta Persistence 3.0/3.1) - 确认
faces-config的命名空间https://jakarta.ee/xml/ns/jakartaee与XSD版本web-facesconfig_4_0.xsd适配(4.0版本兼容Jakarta Faces 4.0)
- 确认
重置XML验证缓存
- 打开Eclipse偏好设置:
Window > Preferences - 导航到
XML > XML Files > Cache - 点击
Clear Cache后重新验证项目
- 打开Eclipse偏好设置:
内容的提问来源于stack exchange,提问作者Spanky
相关产品推荐
相关产品推荐

