你好,我是 Jaxb 的新手,已經花了 3 個多小時搜索這個 NullPointerException 和這個解組的東西,但沒有發現任何對我有用的東西。我嘗試使用 inputStream、StringReader 和 Buffered reader,但是當我嘗試將 XML 文件解組到 java 對象時,所有結果都為空值,這里是例外:java.lang.IllegalStateException:無法在 org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) ~[spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE] 處執行 CommandLineRunner。 springframework.boot.SpringApplication.callRunners(SpringApplication.java:765) ~[spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:319 )?[spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE]在org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)?[spring-boot-2.1.8.RELEASE。 jar:2.1.8.RELEASE] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1204) ~[spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE] 在 kso.xmlprocessing。 XmlprocessingApplication.main(XmlprocessingApplication.java:10) ~[classes/:na] 位于 java.base/jdk。Internal.reflect.NativeMethodAccessorImpl.invoke0(本機方法) ~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] 在 java.base/jdk .internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] 在 org .springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.1.8.RELEASE.jar:2.1.8.RELEASE] 引起:java.lang.NullPointerException: null 在 kso.xmlprocessing.service.SupplierServiceImpl.seedSuppliers(SupplierServiceImpl.java:38) ~[classes/:na] 在 kso.xmlprocessing.web.controller.CarDealerController.run(CarDealerController.java:17) ~[classes/:na] ] 在 org.springframework.boot.SpringApplication。callRunner(SpringApplication.java:781) ~[spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE] ... 省略10個常見框架
1 回答

慕哥9229398
TA貢獻1877條經驗 獲得超6個贊
問題是您的 POJOS + 注釋未正確映射到提供的 xml。具體來說,在“SupplierRootDto”字段中“supplierDtos”需要更改或使用注釋來覆蓋,如下所示:
@XmlRootElement(name = "suppliers")
@XmlAccessorType(XmlAccessType.FIELD)
public class SupplierRootDto {
// ADD NAME TO MATCH THE XML ELEMENT
@XmlElement(name = "supplier")
private List<SupplierDto> supplierDtos;
public SupplierRootDto() {
}
public List<SupplierDto> getSupplierDtos() {
return supplierDtos;
}
public void setSupplierDtos(List<SupplierDto> supplierDtos) {
this.supplierDtos = supplierDtos;
}
}
然后它將正確解組。
添加回答
舉報
0/150
提交
取消