Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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
Jaxb 忽略超类_Jaxb_Eclipselink_Moxy - Fatal编程技术网

Jaxb 忽略超类

Jaxb 忽略超类,jaxb,eclipselink,moxy,Jaxb,Eclipselink,Moxy,我正在使用一个扩展JavaFx组件的类 public class MyClass extends Pane {} 我只想序列化那个类,而不是窗格超类 由于Jaxb不支持它,我使用Eclipselink MOXy来实现这一点: 马歇尔勒 Map<String, Source> metadataSource = new HashMap<String, Source>(); metadataSource.put("com.myapp", new StreamSource(ge

我正在使用一个扩展JavaFx组件的类

public class MyClass extends Pane {}
我只想序列化那个类,而不是窗格超类

由于Jaxb不支持它,我使用Eclipselink MOXy来实现这一点:

马歇尔勒

Map<String, Source> metadataSource = new HashMap<String, Source>();
metadataSource.put("com.myapp", new StreamSource(getClass().getResourceAsStream("/com/myapp/myclass.xml")));

Map<String, Object> properties = new HashMap<String, Object>();
properties.put(JAXBContextProperties.OXM_METADATA_SOURCE, metadataSource);

JAXBContext context = JAXBContext.newInstance(new Class[] {MyClass.class}, properties);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(new MyClass(), new File("test.xml"));
Map metadataSource=newhashmap();
metadataSource.put(“com.myapp”,新的StreamSource(getClass().getResourceAsStream(“/com/myapp/myclass.xml”));
映射属性=新的HashMap();
put(JAXBContextProperties.OXM_METADATA_SOURCE,metadataSource);
JAXBContext context=JAXBContext.newInstance(新类[]{MyClass.Class},属性);
Marshaller m=context.createMarshaller();
m、 setProperty(Marshaller.JAXB_格式的_输出,Boolean.TRUE);
m、 封送处理(new MyClass(),新文件(“test.xml”);
myclass.xml

<?xml version="1.0"?>
<xml-bindings 
    xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"
    version="2.3">
    <java-types>
        <java-type name="javafx.scene.layout.Pane" xml-transient="true" />
    </java-types>
</xml-bindings>

但我得到了一个错误:

javax.xml.bind.JAXBException: 异常描述:在包[com.myapp]上键入的绑定文件中不允许使用包[javafx.scene.layout]的java类型。 -除此之外: [异常[EclipseLink-50037](Eclipse持久性服务-2.4.1.v20121003-ad44345):org.Eclipse.Persistence.exceptions.jaxbeexception

我花了几个小时寻找一些信息,但一个也没有找到

任何帮助都将不胜感激


谢谢

您可以使用MOXy的外部映射文档指定超级类型为
java.lang.Object
,而不是
窗格


对相关问题的回答