我在将XML响应从服务转换为POJO时遇到一个异常。XML如下所示:
javax.xml.bind.UnmarshalException: unexpected element (uri:""
, local:"ItemSearchResponse"). Expected elements are
<{http://webservices.amazon.com/AWSECommerceService/2011-08-01}ItemSearchResponse>
我是这样用的:
Document response = getResponse(url);
JAXBContext context = JAXBContext.newInstance(AmazonItem.class);
Unmarshaller unMarshaller = context.createUnmarshaller();
newItem = (AmazonItem) unMarshaller.unmarshal(response);
下面是我的文件的详细信息
包-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;
@XmlRootElement(name="ItemSearchResponse")
@XmlAccessorType(XmlAccessType.FIELD)
public class AmazonItem
{
@XmlElement(name="Items")
private Items items = null;
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Items {
@XmlElement(name="Item")
List<Item> items = new ArrayList();
}
@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;
}
@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;
}
错误消息表示您得到的XML文档如下所示:
<ItemSearchResponse>
而不是与您已映射的命名空间限定相匹配的如下所示:
<ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
从xml反编组时遇到异常 } 我为systemUnit类添加了注释@xmlRootelement(name=“systemUnit”)。 有人能帮我解决这个问题吗
嗨,我已经使用wsimport从WSDL生成了java类,但是我已经将响应写到了一个文件*.xml中。但是现在我想读取这个xml文件并填充已经生成的java类。 我试过: XML如下所示: 或者我能做什么?
UnMarshalException:意外元素(URI:“”,本地:“SystemUnit”)。需要的元素为<{http://xyz.abc.com/consumer/systems}SystemUnit>
当我试图从web服务获取对象时,会出现以下异常: User类使用进行注释,通过浏览器访问web服务将显示User的xml表示形式 客户端代码(我使用是因为导致): Web服务代码:
你可以在这个网站找到很多这样的问题,但没有一个解决了我的问题。 这是我的XML: 我已经使用XJC编译器创建了Jaxb类,创建的文件如下所示: