javax.xml.bind.UnmarshaleException:意外元素(uri:
在尝试使用jaxb将xml响应转换为java对象时,我遇到以下错误javax.xml.bind.UnmarshaleException:意外元素(uri:,java,jaxb,Java,Jaxb,在尝试使用jaxb将xml响应转换为java对象时,我遇到以下错误 javax.xml.bind.UnmarshalException: unexpected element (uri:"http://SOMETHING/doc/2006-03-01/", local:"Name"). Expected elements are <{}Name>,<{}IsTruncated>,<{}MaxKeys>,<{}Contents>,<
javax.xml.bind.UnmarshalException: unexpected element (uri:"http://SOMETHING/doc/2006-03-01/", local:"Name"). Expected elements are <{}Name>,<{}IsTruncated>,<{}MaxKeys>,<{}Contents>,<{}Prefix>,<{}Marker>
最后,我的解组代码是:
JAXBContext jc = JAXBContext.newInstance(ListBucketResult.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
unmarshaller.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());
JAXBElement element = (JAXBElement) unmarshaller.unmarshal (inputStream);
ListBucketResult customer = (ListBucketResult) element.getValue();
有人能告诉我我做错了什么吗?XML文档包含的元素是http://something/doc/2006-03-01/'命名空间,但注释的java类与该命名空间不关联。请尝试将@XmlType注释更改为:
@XmlType(name = "", namespace="http://something/doc/2006-03-01/", propOrder = { ...
您可以在
包信息
类上使用@XmlSchema
注释来控制命名空间限定。如果您已经编写了包信息类,请确保它正在编译中(ant的某些版本在包信息类方面有问题)
套餐信息
@XmlSchema(
namespace = "http://something/doc/2006-03-01/",
elementFormDefault = XmlNsForm.QUALIFIED)
package example;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
了解更多信息
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId>
<version>1.9.9</version>
</dependency>
org.codehaus.jackson
杰克逊xc
1.9.9
还有其他我需要的Jackson罐子,所以我的POM基本上如下所示
//The jackson-core-asl jar contains streaming JSON parser and generator interfaces and implementations
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.9</version>
</dependency>
//Ability to use JAXB annotations containing classes needed to add XML compatibility support.
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId>
<version>1.9.9</version>
</dependency>
//Mapper jar contains functionality for data binding:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.9</version>
</dependency> //This dependency makes a JAX-RS implementation like Jersey,RESTEasy use Jackson for binding of JSON to-from Java objects
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.9</version>
</dependency>
//jackson core asl jar包含流式JSON解析器和生成器接口及实现
org.codehaus.jackson
jackson core asl
1.9.9
//能够使用包含添加XML兼容性支持所需的类的JAXB注释。
org.codehaus.jackson
杰克逊xc
1.9.9
//Mapper jar包含数据绑定功能:
org.codehaus.jackson
杰克逊地图绘制者
1.9.9
//这种依赖性使得像Jersey这样的JAX-RS实现可以轻松地使用Jackson将JSON绑定到Java对象
org.codehaus.jackson
杰克逊·贾克斯
1.9.9
Hi,更改此选项没有帮助。@xmlacessortype(xmlacesstype.FIELD)@XmlType(name=”,namespace=”,propOrder={“name”,“prefix”,“marker”,“maxKeys”,“isTruncated”,“contents”})无论采用何种机制,问题都是名称空间问题。exception方法表示提供了一个完全限定名为{}name的元素(根据提供的xml,这是正确的),但提供了一个名为{}name的元素(除其他外)应为。后者是默认命名空间中的一个元素。异常现在是否完全相同,或者有轻微更改?您好,感谢所有评论。只需删除@XmlType(name=),propoder={“name”,“prefix”,“marker”,“maxKeys”、“isTruncated”、“contents”})将名称空间参数添加到@XmlType注释对我来说非常有用!
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId>
<version>1.9.9</version>
</dependency>
//The jackson-core-asl jar contains streaming JSON parser and generator interfaces and implementations
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.9</version>
</dependency>
//Ability to use JAXB annotations containing classes needed to add XML compatibility support.
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId>
<version>1.9.9</version>
</dependency>
//Mapper jar contains functionality for data binding:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.9</version>
</dependency> //This dependency makes a JAX-RS implementation like Jersey,RESTEasy use Jackson for binding of JSON to-from Java objects
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.9</version>
</dependency>