我正在使用由Mathworks JA构建器创建的jar文件开发的Java程序出现问题。在这个Matlab程序中,它使用JAK为Google Earth创建一个KML文件。我在使用完整Matlab ide的开发计算机上没有任何问题。但是,当接管到只有MCR的另一台机器时,我收到以下错误:
javax.xml.bind.PropertyException:name:com.sun.xml.bind.namespacePrefixMapper value:de.micromata.opengis.kml.V_2_2_0.kml$NameSpaceBeautyfier@15cb235
at javax.xml.helpers.AbstractMarshallerImpl.setProperty(Unkown Source) at com.sun.xml.internal.bind.V2.runtime.MarshallerImpl.setProperty(Unkown Source) at de.micromata.opengis.kml.V_2_2_0.kml.createMarshaller(kml.java:642) at de.micromata.opengis.kml.V_2_2_0.kml.marshal(kml.java:682)
这是与Classpath相关的东西吗?
感谢您的帮助。
答案 0 :(得分:1)
两个系统上是否有相同版本的JAXB库?看起来它可能是版本冲突。正在搜索您的错误,我看到了这个页面:http://timepassguys.blogspot.com/2011/12/jaxb-exception-javaxxmlbindpropertyexce.html
也许你可以试试这个解决方案吗?
答案 1 :(得分:1)
您正在使用JDK(com.sun.xml.internal.bind
)中包含的JAXB实现,但是正在为Metro JAXB实现指定属性(com.sun.xml.bind
)。请注意,当Metro JAXB包含在JDK中时,它将经历程序包重命名。
选项强>
com.sun.xml.internal.bind.namespacePrefixMapper
属性。了解更多信息