2 count of Illegal Annotation Exception

2 count of Illegal Annotation Exception

up vote 7 down vote favorite

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

 CustomerID="GREAL">
    Great Lakes Food Market
    Howard Snyder
    Marketing Manager
    (503) 555-7555
    
        
2732 Baker Blvd.
Eugene OR 97403 USA

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!

share improve this question
 

1 Answer

active oldest votes
up vote 9 down vote accepted

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.

share improve this answer

你可能感兴趣的:(Exception)