Spring RestTemplate忽略package-info.java

Spring RestTemplate忽略package-info.java,java,xml,spring,xsd,jaxb,Java,Xml,Spring,Xsd,Jaxb,我使用“xjc”命令从xsd生成了一些类 我遇到的问题是,在生成的包中有一个包信息文件,该文件包上只有@XmlSchema注释: e、 g 我遇到两个问题:首先,封送员在解组时总是抛出异常: exception is org.springframework.http.converter.HttpMessageNotReadableException: Could not unmarshal to [class nl.minc.bolapp.dto.Orders]: unexpected elem

我使用“xjc”命令从xsd生成了一些类

我遇到的问题是,在生成的包中有一个包信息文件,该文件包上只有@XmlSchema注释:

e、 g

我遇到两个问题:首先,封送员在解组时总是抛出异常:

exception is org.springframework.http.converter.HttpMessageNotReadableException: Could not unmarshal to [class nl.minc.bolapp.dto.Orders]: unexpected element (uri:"https://plazaapi.bol.com/services/xsd/v2/plazaapi.xsd", local:"Orders"). Expected elements are <{}Orders>; nested exception is javax.xml.bind.UnmarshalException: unexpected element (uri:"https://plazaapi.bol.com/services/xsd/v2/plazaapi.xsd", local:"Orders"). Expected elements are <{}Orders>
异常为org.springframework.http.converter.httpMessageNodeTableException:无法解组到[class nl.minc.bolapp.dto.Orders]:意外元素(uri:)https://plazaapi.bol.com/services/xsd/v2/plazaapi.xsd,本地:“订单”)。预期要素包括:;嵌套异常为javax.xml.bind.UnmarshaleException:意外元素(uri:)https://plazaapi.bol.com/services/xsd/v2/plazaapi.xsd,本地:“订单”)。预期的要素是
我可以在直接在@XmlRoot上设置名称空间时删除它 一旦我这样做了,最初的命令就会被正确解析。然后,我遇到的问题是子项为null,其中应该有数据

现在的问题主要是子对象为null,但我怀疑它与名称空间有关

编辑1 在发布名称空间时,null子级的问题消失了 在每个元素中,这肯定是一个直接的因果关系

我发布生成的类和xml:

类别:

package com.xxx.bolapp.dto;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "order"
})
@XmlRootElement(name = "Orders")
public class Orders
    implements Serializable
{

    private final static long serialVersionUID = 1L;
    @XmlElement(name = "Order")
    protected List<Orders.Order> order;
....
    @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "orderId",
    "dateTimeCustomer",
    "dateTimeDropShipper",
    "customerDetails",
    "orderItems"
})
public static class Order
    implements Serializable
{
....
}
}
package com.xxx.bolapp.dto;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name=),比例={
“订单”
})
@XmlRootElement(name=“Orders”)
公共阶级秩序
实现序列化接口
{
私有最终静态长serialVersionUID=1L;
@xmlement(name=“Order”)
受保护名单顺序;
....
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name=),比例={
“订单ID”,
“dateTimeCustomer”,
“dateTimeDropShipper”,
“客户详情”,
“订单项”
})
公共静态类秩序
实现序列化接口
{
....
}
}
Xml:


4123456789
2017-02-09T12:39:48.000+01:00
2017-02-09T12:39:48.000+01:00
02
比莉
范德波尔网站
多普斯特拉特
1.
B
1111 ZZ
乌得勒支
NL
2awq74td4z4mizmx6dcdbsdbdcna@verkopen.bol.com
bol.com
02
比莉
范德波尔网站
多普斯特拉特
1.
B
1111 ZZ
乌得勒支
NL
2awq74td4z4mizmx6dcdbsdbdcna@verkopen.bol.com
bol.com
2012345678
5412810182312
BOLCOM00123
Basicxl-Rijdende Wekker-Kunststof-16x11cm-Zwart
1.
27.95
5.18
2017-02-10+01:00
新的
假的
FBR

您的Orders类与您在package-info.java中提到的是在同一个包中?是的,它都是由xjc自动生成的
package com.xxx.bolapp.dto;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "order"
})
@XmlRootElement(name = "Orders")
public class Orders
    implements Serializable
{

    private final static long serialVersionUID = 1L;
    @XmlElement(name = "Order")
    protected List<Orders.Order> order;
....
    @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "orderId",
    "dateTimeCustomer",
    "dateTimeDropShipper",
    "customerDetails",
    "orderItems"
})
public static class Order
    implements Serializable
{
....
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Orders xmlns="https://plazaapi.bol.com/services/xsd/v2/plazaapi.xsd">
<Order>
 <OrderId>4123456789</OrderId>
 <DateTimeCustomer>2017-02-09T12:39:48.000+01:00</DateTimeCustomer>
 <DateTimeDropShipper>2017-02-09T12:39:48.000+01:00</DateTimeDropShipper>
 <CustomerDetails>
   <ShipmentDetails>
     <SalutationCode>02</SalutationCode>
     <Firstname>Billie</Firstname>
     <Surname>Van der Bol.com</Surname>
     <Streetname>Dorpstraat</Streetname>
     <Housenumber>1</Housenumber>
     <HousenumberExtended>B</HousenumberExtended>
     <ZipCode>1111 ZZ</ZipCode>
     <City>Utrecht</City>
     <CountryCode>NL</CountryCode>
     <Email>2awq74td4z4mizmx6dcdbsdbdcna@verkopen.bol.com</Email>
     <Company>bol.com</Company>
   </ShipmentDetails>
   <BillingDetails>
     <SalutationCode>02</SalutationCode>
     <Firstname>Billie</Firstname>
     <Surname>van der Bol.com</Surname>
     <Streetname>Dorpstraat</Streetname>
     <Housenumber>1</Housenumber>
     <HousenumberExtended>B</HousenumberExtended>
     <ZipCode>1111 ZZ</ZipCode>
     <City>Utrecht</City>
     <CountryCode>NL</CountryCode>
     <Email>2awq74td4z4mizmx6dcdbsdbdcna@verkopen.bol.com</Email>
     <Company>bol.com</Company>
   </BillingDetails>
 </CustomerDetails>
 <OrderItems>
   <OrderItem>
     <OrderItemId>2012345678</OrderItemId>
     <EAN>5412810182312</EAN>
     <OfferReference>BOLCOM00123</OfferReference>
     <Title>Basicxl - Rijdende Wekker - Kunststof - 16x11cm - Zwart</Title>
     <Quantity>1</Quantity>
     <OfferPrice>27.95</OfferPrice>
     <TransactionFee>5.18</TransactionFee>
     <LatestDeliveryDate>2017-02-10+01:00</LatestDeliveryDate>
     <OfferCondition>NEW</OfferCondition>
     <CancelRequest>false</CancelRequest>
     <FulfilmentMethod>FBR</FulfilmentMethod>
   </OrderItem>
 </OrderItems>
 </Order>
</Orders>