Java sytobook.us/hotel_proxy.php?hotel_id=436924&;lang=en&;抵达时间=2016年11月20日&;出发日期=2016年11月29日&;货币=欧元和欧元;prs_arr%5B0%5D=2&;amu=280828207&;utm_来源=项目121&;utm_medium=附属公司和;utm_术语=悉尼&;utm_含量=etb5&;utm_活动=en&;rtoken=1VSwnz7whjuxw-RGo5aP6cp-XmdDQSHC7twXmVrwPejOzYDFXdGY_BDBS9xBUP8xu83QSMZJGZ_VGQZHJEE5KVENJKUPBATUK6JTQIWCK, 1VSwnz7whjuxw-RGo5aP6cp-XmdDQSHC7twXmVrwPejOzYDFXdGY_BDBS9xBUP8xu83QSMZJGZ_vgQZHjeE5kVENJkuPBAtuKd6jTqIWCk, 1. 酒店 1. 1. 1. 0 0 0 0 1. 1379794752 两人高级+早餐 2. 4. 1890 0 1890 1890 1. https://stage-site.easytobook.us/booking_screen.php?hotel_id=436924&精确=436924&;城市id=23&;抵达时间=2016年11月20日&;出发日期=2016年11月29日&;货币=欧元和欧元;lang=en&;房间[13794752]=1&;人数=2人及;房间=1间及;amu=280828207&;utm_来源=项目121&;utm_medium=附属公司和;utm_术语=悉尼&;utm_含量=etb5&;utm_活动=en&;rtoken=ocGkvI7xuJJwz1BWWYNBztr7n-u ti8FVNFZ3CZSRWRMRTUHAEGZICH-0POK2ZOVES-4Fz1, http://stage-site.easytobook.us/hotel_proxy.php?hotel_id=436924&lang=en&;抵达时间=2016年11月20日&;出发日期=2016年11月29日&;货币=欧元和欧元;prs_arr%5B0%5D=2&;amu=280828207&;utm_来源=项目121&;utm_medium=附属公司和;utm_术语=悉尼&;utm_含量=etb5&;utm_活动=en&;rtoken=ocGkvI7xuJJwz1BWWYNBztr7n-u ti8FVNFZ3CZSRWRMRTUHAEGZICH-0POK2ZOVES-4Fz1, ocGkvI7xuJJwz1BWWYNBztr7n-uu tI8fVNfz3cZsrwRMGrtuHAEGziCH-0poK2ZoveEs-4Fz1_4;Y4U8pwE4KGKjJc4iwdSKM4ewIJwMU8omA, 1. 酒店 1. 1. 1. 0 0 0 0 1. .....

Java sytobook.us/hotel_proxy.php?hotel_id=436924&;lang=en&;抵达时间=2016年11月20日&;出发日期=2016年11月29日&;货币=欧元和欧元;prs_arr%5B0%5D=2&;amu=280828207&;utm_来源=项目121&;utm_medium=附属公司和;utm_术语=悉尼&;utm_含量=etb5&;utm_活动=en&;rtoken=1VSwnz7whjuxw-RGo5aP6cp-XmdDQSHC7twXmVrwPejOzYDFXdGY_BDBS9xBUP8xu83QSMZJGZ_VGQZHJEE5KVENJKUPBATUK6JTQIWCK, 1VSwnz7whjuxw-RGo5aP6cp-XmdDQSHC7twXmVrwPejOzYDFXdGY_BDBS9xBUP8xu83QSMZJGZ_vgQZHjeE5kVENJkuPBAtuKd6jTqIWCk, 1. 酒店 1. 1. 1. 0 0 0 0 1. 1379794752 两人高级+早餐 2. 4. 1890 0 1890 1890 1. https://stage-site.easytobook.us/booking_screen.php?hotel_id=436924&精确=436924&;城市id=23&;抵达时间=2016年11月20日&;出发日期=2016年11月29日&;货币=欧元和欧元;lang=en&;房间[13794752]=1&;人数=2人及;房间=1间及;amu=280828207&;utm_来源=项目121&;utm_medium=附属公司和;utm_术语=悉尼&;utm_含量=etb5&;utm_活动=en&;rtoken=ocGkvI7xuJJwz1BWWYNBztr7n-u ti8FVNFZ3CZSRWRMRTUHAEGZICH-0POK2ZOVES-4Fz1, http://stage-site.easytobook.us/hotel_proxy.php?hotel_id=436924&lang=en&;抵达时间=2016年11月20日&;出发日期=2016年11月29日&;货币=欧元和欧元;prs_arr%5B0%5D=2&;amu=280828207&;utm_来源=项目121&;utm_medium=附属公司和;utm_术语=悉尼&;utm_含量=etb5&;utm_活动=en&;rtoken=ocGkvI7xuJJwz1BWWYNBztr7n-u ti8FVNFZ3CZSRWRMRTUHAEGZICH-0POK2ZOVES-4Fz1, ocGkvI7xuJJwz1BWWYNBztr7n-uu tI8fVNfz3cZsrwRMGrtuHAEGziCH-0poK2ZoveEs-4Fz1_4;Y4U8pwE4KGKjJc4iwdSKM4ewIJwMU8omA, 1. 酒店 1. 1. 1. 0 0 0 0 1. .....,java,jaxb,Java,Jaxb,错误消息说明了一切: com.easytobook.Roomtype#totalTaxesAndFees在@javax.xml.bind.annotation.xmldattribute和@javax.xml.bind.annotation.xmlement 您的代码有: @XmlRootElement(name = "Roomtype") @XmlAccessorType(XmlAccessType.FIELD) public class Roomtype { . . . @X

错误消息说明了一切:

com.easytobook.Roomtype#totalTaxesAndFees在@javax.xml.bind.annotation.xmldattribute和@javax.xml.bind.annotation.xmlement

您的代码有:

@XmlRootElement(name = "Roomtype")
@XmlAccessorType(XmlAccessType.FIELD)
public class Roomtype {
    . . .
    @XmlAttribute(name="EUR")
    @XmlElement(name = "TotalTaxesAndFees")
    private double totalTaxesAndFees;
这是不允许的


您的问题在于这些XML元素:

<Roomtype>
    <Roomid parentid="2069840686">2069840686</Roomid>
    . . .
    <Totalrate currency="AUD" EUR="1204.3398">1800</Totalrate>
    <TotalTaxesAndFees currency="AUD" EUR="0">0</TotalTaxesAndFees>
    <TotalChargeable currency="AUD" EUR="1204.3398">1800</TotalChargeable>
    <Reckratetotal currency="AUD" EUR="1204.3398">1800</Reckratetotal>
相反,为了在
元素上有一个属性,您需要一个
Roomid
类(并且您不需要
@XmlRootElement
):

总共4个元素具有相同的结构,因此它们可以共享一个类:

@XmlAccessorType(XmlAccessType.FIELD)
public class Total {
    @XmlAttribute(name = "currency")
    private String currency;
    @XmlAttribute(name = "EUR")
    private double eur;
    @XmlValue
    private double total;
}
这两个类的使用方式如下:

@XmlAccessorType(XmlAccessType.FIELD)
public class Roomtype {
    @XmlElement(name = "Roomid")
    private Roomid roomid;
    . . .
    @XmlElement(name = "Totalrate")
    private Total totalrate;
    @XmlElement(name = "TotalTaxesAndFees")
    private Total totalTaxesAndFees;
    @XmlElement(name = "TotalChargeable")
    private Total totalChargeable;
    @XmlElement(name = "Reckratetotal")
    private Total reckratetotal;
<Roomtype>
    <Roomid parentid="2069840686">2069840686</Roomid>
    . . .
    <Totalrate currency="AUD" EUR="1204.3398">1800</Totalrate>
    <TotalTaxesAndFees currency="AUD" EUR="0">0</TotalTaxesAndFees>
    <TotalChargeable currency="AUD" EUR="1204.3398">1800</TotalChargeable>
    <Reckratetotal currency="AUD" EUR="1204.3398">1800</Reckratetotal>
public class Roomtype {
    @XmlAttribute(name = "parentid")
    private String parentid;
@XmlAccessorType(XmlAccessType.FIELD)
public class Roomid {
    @XmlAttribute(name = "parentid")
    private String parentid;
    @XmlValue
    private long roomId;
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Total {
    @XmlAttribute(name = "currency")
    private String currency;
    @XmlAttribute(name = "EUR")
    private double eur;
    @XmlValue
    private double total;
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Roomtype {
    @XmlElement(name = "Roomid")
    private Roomid roomid;
    . . .
    @XmlElement(name = "Totalrate")
    private Total totalrate;
    @XmlElement(name = "TotalTaxesAndFees")
    private Total totalTaxesAndFees;
    @XmlElement(name = "TotalChargeable")
    private Total totalChargeable;
    @XmlElement(name = "Reckratetotal")
    private Total reckratetotal;