2 count of Illegal Annotation Exception

来源:互联网 发布:钻石展位 淘宝首页 编辑:程序博客网 时间:2024/06/05 11:17

2 count of Illegal Annotation Exception

up vote7down votefavorite

I have a Customer and CustomerFullAddress class and i am using JAXB to try to produce an XML file

<Customer CustomerID="GREAL">    <CompanyName>Great Lakes Food Market</CompanyName>    <ContactName>Howard Snyder</ContactName>    <ContactTitle>Marketing Manager</ContactTitle>    <Phone>(503) 555-7555</Phone>    <FullAddress>        <Address>2732 Baker Blvd.</Address>        <City>Eugene</City>        <Region>OR</Region>        <PostalCode>97403</PostalCode>        <Country>USA</Country>    </FullAddress></Customer>

The Customer Class looks like below (Its not a full implementation)

package org.abc.customers;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;import javax.xml.bind.annotation.XmlType;@XmlRootElement(name = "customer")@XmlType (propOrder = { "companyName", "contactName", "contactTitle", "phone" })public class Customer {*@XmlElement(name = "customerfulladdress")private CustomerFullAddress custAdd;*private String companyName;private String contactName;private String contactTitle;private int phone;public CustomerFullAddress getCustAddress() {return custAdd;}public void setCustAddress(CustomerFullAddress custAdd) {this.custAdd = custAdd;}...

While the CustomerFullAddress is

package org.abc.customers;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;import javax.xml.bind.annotation.XmlType;@XmlRootElement(name = "customerfulladdress")//If you want you can define the order in which the fields are written//Optional@XmlType(propOrder = { "address", "city", "region", "postalCode", "country" })public class CustomerFullAddress {private String address;...public String getAddress() {    return address;}public void setAddress(String address) {    this.address = address;}..... }

and the error is

Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions Property custAdd is present but not specified in @XmlType.propOrder this problem is related to the following location: at private org.abc.customers.CustomerFullAddress org.abc.customers.Customer.custAdd at org.abc.customers.Customer Property custAddress is present but not specified in @XmlType.propOrder this problem is related to the following location: at public org.abc.customers.CustomerFullAddress org.abc.customers.Customer.getCustAddress() at org.abc.customers.Customer

Thanks for having a look!

shareimprove this question
 

1 Answer

activeoldestvotes
up vote9down voteaccepted

From the JavaDoc for @XmlType:

propOrder

All of the JavaBean properties being mapped to XML Schema elements must be listed.

You need to add the CustomerFullAddress property to the propOrder for Customer.

shareimprove this answer
0 0
原创粉丝点击