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 = { ...
您可以在package info类上使用@XmlSchema注释来控制命名空间限定。如果您已经编写了package info类,请确保正在编译该类。某些版本的ant在package info类方面存在问题

包裹信息

更多信息


我得到了类似的错误org.codehaus.jackson.JsonParseException和javax.xml.bind.unmarshaleexception:带有链接的异常:[javax.xml.bind.unmarshaleexception:意外的元素uri:sometext,local:elementA。预期的元素为

这是在将RESTEasy和Spring与使用JAXB生成的DTO集成时,我使用Jackson进行转换

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

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-xc</artifactId>
        <version>1.9.9</version>
    </dependency>
还有其他我需要的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>

您好,更改此选项没有帮助。@xmlacessortypexmlacesstype.FIELD@XmlTypename=,namespace=,propOrder={name,prefix,marker,maxKeys,isTruncated,contents}无论采用何种机制,该问题都是名称空间问题。exception方法表示提供了一个完全限定名为{}name的元素,根据提供的xml,该元素是正确的,但是{}的元素需要名称和其他名称。后者是默认命名空间中的一个元素。异常现在是完全相同的还是有轻微更改?您好,感谢所有注释。只需删除@XmlTypename=,Propoder={name、prefix、marker、maxKeys、isTruncated、contents}将名称空间参数添加到@XmlType注释中对我来说非常有用!
@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>
   //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>