Java jibx:缺少必需的对象异常

Java jibx:缺少必需的对象异常,java,xml,jibx,Java,Xml,Jibx,我用JiBX来整理一些课程。它工作得很好,直到我得到一个IllegalStateException java.lang.IllegalStateException: Missing required object at org.jibx.runtime.impl.MarshallingContext.pushObject(MarshallingContext.java:1181) at com.dreipplus.profiler.importer.binding.trans.JiBX_bind

我用JiBX来整理一些课程。它工作得很好,直到我得到一个
IllegalStateException

java.lang.IllegalStateException: Missing required object
at org.jibx.runtime.impl.MarshallingContext.pushObject(MarshallingContext.java:1181)
at com.dreipplus.profiler.importer.binding.trans.JiBX_binding0MungeAdapter.JiBX_binding0_marshalAttr_1_18()
at com.dreipplus.profiler.importer.binding.trans.JiBX_binding0RoomProductVO_access.marshal()
at com.dreipplus.profiler.importer.binding.trans.LibRoomObjectImport.JiBX_binding0_marshal_3_0(LibRoomObjectImport.java)
at com.dreipplus.profiler.importer.binding.trans.JiBX_binding0LibRoomObjectImport_access.marshal()
at com.dreipplus.profiler.importer.binding.trans.LibRoomObjectImport.marshal(LibRoomObjectImport.java)
at com.dreipplus.profiler.importer.binding.trans.JiBX_binding0MungeAdapter.JiBX_binding0_marshal_1_3()
at com.dreipplus.profiler.importer.binding.trans.LibraryImport.JiBX_binding0_marshal_2_0(LibraryImport.java)
at com.dreipplus.profiler.importer.binding.trans.JiBX_binding0LibraryImport_access.marshal()
at com.dreipplus.profiler.importer.binding.trans.LibraryImport.marshal(LibraryImport.java)
at com.dreipplus.profiler.importer.binding.trans.JiBX_binding0MungeAdapter.JiBX_binding0_marshal_1_0()
at com.dreipplus.profiler.importer.binding.trans.Libraries.JiBX_binding0_marshal_2_0(Libraries.java)
at com.dreipplus.profiler.importer.binding.trans.JiBX_binding0Libraries_access.marshal()
at com.dreipplus.profiler.importer.binding.trans.Libraries.marshal(Libraries.java)
at org.jibx.runtime.impl.MarshallingContext.marshalRoot(MarshallingContext.java:1021)
at org.jibx.runtime.impl.MarshallingContext.marshalDocument(MarshallingContext.java:1083)
at com.dreipplus.profiler.library.LibraryTest.testExportLibrary(LibraryTest.java:186)
at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:70)
xml输出在另一个(进一步)位置停止(可能未刷新):

。。。
弗尼尔·卡那迪什·阿霍恩
[EOF]
未设置
usage=“optional”
是否有问题?JiBX是否需要一个不存在的字段?我丢失了JiBX上的调试输出,但这在他们的JIRA中已经被报告为一个bug

如果有人知道哪里出了问题,或者我如何找出问题所在,请

这里是我的binding0.xml

提前谢谢


Florian Huber

如果字段为空,如果它有(XML-)子元素,则IllegalArgumentException会出现


我仔细检查了代码,发现了错误。

我有相同的问题和解决方案(将非空引用设置为“必需”字段)。感谢@itshortyTo澄清:如果希望将对象编组到
,但是
root.element==null
JiBX将抛出异常。我通过检查类
MarshallingContext
中的变量
m_objectStack
发现了包含
null
值的元素。
...         
<objectsmaterial>
            <material>
                <name>
                    <localizedtext size="1">
                        <entry key="de_AT">Furnier Kanadische Ahorn</entry>
                    </localizedtext>
                </name>
                <longtext>
                    <localizedtext size="1">
                        <entry key="de_AT">
[EOF]