Matlab中使用Marshaller的Java/JAXB/JAK错误
我正在开发一个Java程序,该程序使用Mathworks JA builder创建的jar文件,我遇到了一个问题。在这个Matlab程序中,它使用JAK为Google Earth创建一个KML文件。我在使用完整的MatlabIDE开发计算机方面没有问题。但是,当移交给另一台只有MCR的机器时,我会出现以下错误:
javax。xml。绑定PropertyException:名称:com。太阳xml。绑定namespacePrefixMapper值:de.micromata。opengis。kml。V_2_2_0。kml$NameSpaceBeautyfier@15cb235
在javax。xml。帮手。马歇尔·雷普勒。setProperty(未知源) 在com。太阳xml。内部的绑定V2。运行时。马歇尔雷普。setProperty(未知源) 在de.micromata。opengis。kml。V_2_2_0。kml。createMarshaller(kml.java:642) 在de.micromata。opengis。kml。V_2_2_0。kml。封送员(kml.java:682)
这是否与类路径相关
谢谢你的帮助
# 1 楼答案
您正在使用JDK(
com.sun.xml.internal.bind
)中包含的JAXB实现,但正在为Metro JAXB实现(com.sun.xml.bind
)指定属性。请注意,当Metro JAXB包含在JDK中时,它将经历一个包重命名选项
com.sun.xml.internal.bind.namespacePrefixMapper
属性李>了解更多信息
# 2 楼答案
两个系统上是否有相同版本的JAXB库?看起来可能是版本控制冲突。在搜索您的错误时,我发现了以下页面:http://timepassguys.blogspot.com/2011/12/jaxb-exception-javaxxmlbindpropertyexce.html
也许你可以试试这个解决方案