javax.xml.bind.UnmarshaleException:意外元素(uri:

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>,<

在尝试使用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>,<{}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;
了解更多信息


我得到了类似的错误org.codehaus.jackson.JsonParseExceptionjavax.xml.bind.unmarshaleException:带有链接的异常:[javax.xml.bind.unmarshaleException:意外元素(uri:“sometext”,local:“elementA”)。预期的元素是

这是在将RESTEasySpring与使用JAXB生成的DTO集成时。我使用Jackson进行转换

为了解决这个问题,我在Maven依赖项中引入了Jackson库,它解决了我的问题

    <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>