java - org.xml.sax.SAXParseException:cvc-elt.1.a:找不到元素的声明
问题描述
我想使用一个包含设置参数的 XML 文件,并自动将其与类组件字段相关联,以便将来可作为配置类重用。我是基于 post: click。
我的文件 configuration.xml 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<server serverport="1111"/>
<client clientport="1111">
<ServerHost>localhost</ServerHost>
</client>
</config>
我的课程如下:
@ImportResource(value = "classpath:configuration.xml")
@Configuration
@NoArgsConstructor
@Getter
public class Config {
private Server server;
private Client client;
}
客户端.java
@Getter
public class Client {
private @Value("#{clientport}") String clientPort;
private String serverHost;
}
服务器.java
@Getter
public class Server {
private @Value("#{serverport}") String serverPort;
}
pom.xml 看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.Java</groupId>
<artifactId>advanced</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
使用这种方法,我收到如下错误:
Line 2 in XML document from class path resource [configuration.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 9; cvc-elt.1.a: Cannot find the declaration of element 'config'.
和
Caused by: org.xml.sax.SAXParseException: cvc-elt.1.a: Cannot find the declaration of element 'config'.
我有点困惑,因为看起来它看起来不错,但我找不到这个错误的来源。我将不胜感激有关如何在我的应用程序中解决此问题并使其可作为具有 XML 文件中的配置参数的类重用的建议。
编辑:如果您知道实现理想目标的另一种方法,请随时发布。
EDIT2:我找到了解决此问题的方法,但我希望有另一种解决方案可以带来理想的效果:单击
解决方案
推荐阅读
- python - 尝试解释 XGBoost 分类器的权重时出现 TypeError
- java - java - 如何接收通过Node-red发送到Java中的Reactor UdpClient / UdpServer的udp数据包?
- c# - MongoDB不会让我保存对象可能的循环引用
- npm - npm 详细堆栈错误:无法验证,需要:基本领域 =“https://npm.fontawesome.com/”,服务 =“npm.fontawesome.com”
- javascript - SharePoint Online API - 检测 NoScript (DenyAddAndCustomizePages) 状态?
- r - pivot_wider 具有复杂名称的数据框 R
- r - MATLAB中的任何内置函数都可以像R中的`ave`一样工作?
- sql - 在 UPSERT 的 UPDATE 部分,为多列计算一次表达式
- php - 执行 yii migrate 时如何修复错误“异常”?
- azure - 如何使用 @WebMvcTest、MockMvc 和 OAuth 安全性测试控制器