Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring中的Jaxb2Marshaller解组-意外元素_Java_Spring_Jaxb - Fatal编程技术网

Java spring中的Jaxb2Marshaller解组-意外元素

Java spring中的Jaxb2Marshaller解组-意外元素,java,spring,jaxb,Java,Spring,Jaxb,我对使用Jaxb进行解组非常陌生,但我认为我已经正确配置了所有内容,但在运行时遇到了以下错误: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://xml.product.place.com/prod/alerts/v_1_0", local:"Record"). Expected elements are (none) 我使用JaxB基于一些XSD生成的POJO来解组一个相当复杂的XML文件 以下是XML的相

我对使用Jaxb进行解组非常陌生,但我认为我已经正确配置了所有内容,但在运行时遇到了以下错误:

 javax.xml.bind.UnmarshalException: unexpected element (uri:"http://xml.product.place.com/prod/alerts/v_1_0", local:"Record"). Expected elements are (none)
我使用JaxB基于一些XSD生成的POJO来解组一个相当复杂的XML文件

以下是XML的相关部分:

<PlaceAlerts xmlns="http://xml.product.place.com/prod/alerts/v_1_0"">
<Information>
    <ReportType>EIFK</ReportType>
    <Number>401ZC00155</Number>
    <ReportDate>2005-02-05</ReportDate>
</Information>
<Record>
    <id>123</id>
    <cid><![CDATA[12327*312457495]]></ccid>
...
</PlaceAlerts>
和bean声明:

<bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">

    <property name="packagesToScan">
        <list>
            <value>com.etc.etc.etc.*</value>
        </list>
    </property>
</bean>

等等等等*

有什么想法吗?如果您还需要查看其他内容,请告诉我。

我找到了问题,但没有找到问题的根本原因。我将“packagesToScan”属性更改为“classesToBeBound”属性。出于某种原因,我认为这些类没有被包模式匹配器接受。以下是我将其更改为:

<bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="classesToBeBound">
        <list>
            <value>com.etc.etc.etc.Alert</value>
            <value>com.etc.etc.etc.Channel</value>
            etc...
        </list>
    </property>
</bean>

com.etc.etc.etc警报
com.etc.etc.频道
等

如果有人对packagesToScan为什么没有像我预期的那样工作有任何见解,我很乐意听到。

为了使用“packagesToScan”,我相信package-info.java类应该出现在您的java包中,您已经从模式(XSD)生成了类。

请发布XSD文件的相关部分。我在谷歌上搜索了你的问题,发现了这个问题,但是没有xsd部分,我无法给出答案,尽管我也遇到了同样的问题。你找到解决问题的方法了吗?
<bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="classesToBeBound">
        <list>
            <value>com.etc.etc.etc.Alert</value>
            <value>com.etc.etc.etc.Channel</value>
            etc...
        </list>
    </property>
</bean>