I am getting an exception while turning an XML response from a service to a POJO. The XML looks like this:
Here is my XML response.
javax.xml.bind.UnmarshalException: unexpected element (uri:"" , local:"ItemSearchResponse"). Expected elements are <{http://webservices.amazon.com/AWSECommerceService/2011-08-01}ItemSearchResponse> I am using it like this:
Document response = getResponse(url); JAXBContext context = JAXBContext.newInstance(AmazonItem.class); Unmarshaller unMarshaller = context.createUnmarshaller(); newItem = (AmazonItem) unMarshaller.unmarshal(response); Below are the details of my files
package-info.java
@XmlSchema( namespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01", elementFormDefault = XmlNsForm.QUALIFIED) package com.services.amazon; import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; AmazonItem.java
@XmlRootElement(name="ItemSearchResponse") @XmlAccessorType(XmlAccessType.FIELD) public class AmazonItem { @XmlElement(name="Items") private Items items = null; } Items.java
@XmlAccessorType(XmlAccessType.FIELD) public class Items { @XmlElement(name="Item") List<Item> items = new ArrayList(); } Item.java
@XmlAccessorType(XmlAccessType.FIELD) public class Item { @XmlElement(name="ASIN") private String asin; @XmlElement(name="ItemAttributes") private ItemAttributes attributes; @XmlElement(name="ItemLinks") private List<ItemLinks> itemLinks; } ItemAttributes.java
@XmlAccessorType(XmlAccessType.FIELD) public class ItemAttributes { @XmlElement(name="Title") private String title; @XmlElement(name="Actor") private List<String> actor; @XmlElement(name="ProductGroup") private String productGroup; } ItemLink.java
@XmlAccessorType(XmlAccessType.FIELD) public class ItemLink { @XmlElement(name="Description") private String description; @XmlElement(name="URL") private String url; } ItemLinks.java
@XmlAccessorType(XmlAccessType.FIELD) public class ItemLinks { @XmlElement(name="ItemLink") List<ItemLink> itemLinks; }