Ошибка Java / JAXB / JAK в Matlab с использованием Marshaller - PullRequest
1 голос
/ 05 марта 2012

У меня проблема с разрабатываемой Java-программой, использующей jar-файл, созданный сборщиком Mathworks JA.В этой программе Matlab он использует JAK для создания файла KML для Google Earth.У меня не было проблем на компьютере разработчика с полной версией Matlab.Однако при переходе на другой компьютер, на котором есть только MCR, я получаю следующую ошибку:

javax.xml.bind.PropertyException: name: com.sun.xml.bind.namespacePrefixMapper значение: de.micromata.opengis.kml.V_2_2_0.kml $ NameSpaceBeautyfier @ 15cb235

в javax.xml.helpers.AbstractMarshallerImpl.setProperty (неизвестный источник) в com.sun.xml.internal.bind.V2.runtime.MarshallerImpl (UnsetИсточник) на de.micromata.opengis.kml.V_2_2_0.kml.createMarshaller (kml.java:642) на de.micromata.opengis.kml.V_2_2_0.kml.marshal (kml.java:682)

Это что-то, что связано с Classpath?

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Вы используете реализацию JAXB, которая включена в JDK (com.sun.xml.internal.bind), но задаете свойство для реализации Metro JAXB (com.sun.xml.bind).Обратите внимание, что Metro JAXB подвергается переименованию пакета, когда он включен в JDK.

Опции

  1. Вы можете использовать свойство com.sun.xml.internal.bind.namespacePrefixMapper.
  2. Вы можете использовать файл jaxb.properties, чтобы указать использование реализации JAXB Metro.

Для получения дополнительной информации

1 голос
/ 05 марта 2012

Есть ли у вас одинаковые версии библиотек JAXB в обеих системах? Похоже, это может быть конфликт версий. В поиске по вашей ошибке я наткнулся на эту страницу: http://timepassguys.blogspot.com/2011/12/jaxb-exception-javaxxmlbindpropertyexce.html

Может быть, вы можете попробовать это решение?

...