EclipseRCP-JAXB异常在程序中,但不在最小的示例中:javax.xml.bind.JAXBElement,也不知道它的任何超类
我得到了一个奇怪的错误,当我的代码通过我的程序执行时会发生,但当我在一个独立的主方法中运行它时不会发生 代码是:EclipseRCP-JAXB异常在程序中,但不在最小的示例中:javax.xml.bind.JAXBElement,也不知道它的任何超类,java,eclipse-plugin,jaxb,eclipse-rcp,marshalling,Java,Eclipse Plugin,Jaxb,Eclipse Rcp,Marshalling,我得到了一个奇怪的错误,当我的代码通过我的程序执行时会发生,但当我在一个独立的主方法中运行它时不会发生 代码是: public static void main(String[] args) throws Exception { JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class); Marshaller marshaller = jaxbContext.createM
public static void main(String[] args) throws Exception {
JAXBContext jaxbContext =
JAXBContext.newInstance(ObjectFactory.class);
Marshaller marshaller = jaxbContext.createMarshaller();
JAXBElement<MyTestObject> marshallableSchedule =
new ObjectFactory()
.createMyTestObject(new MyTestObject());
marshaller.marshal(marshallableSchedule, System.out);
}
publicstaticvoidmain(字符串[]args)引发异常{
JAXBContext JAXBContext=
newInstance(ObjectFactory.class);
Marshaller=jaxbContext.createMarshaller();
JAXBElement编组计划=
新对象工厂()
.createMyTestObject(新的MyTestObject());
marshaller.marshall(marshallableSchedule,System.out);
}
代码在我的程序中完全相同,但在调用它时,我得到以下异常:
javax.xml.bind.JAXBException:class javax.xml.bind.JAXBElement及其任何超类在此上下文中都是未知的。
我还注意到,如果我执行jaxBContext.toString()
,那么工作示例将显示包中ObjectFactory
所在的所有类,而失败的示例仅显示package.ObjectFactory
我发现了很多类似这样的重复问题,但通常都说MyTestObject未知,而不是JAXBElement未知
这与我的项目设置方式有关吗?我正在使用EclipseRCP的特性和插件,如果这有什么不同的话。我已经考虑过这可能是一个类加载器问题,但我仍然不确定它是否是或者如何修复它
任何帮助都将不胜感激 由
ObjectFactory()创建的对象的类是什么。createMyTestObject(新的MyTestObject())
<代码>对象工厂?语句<代码> jxbClord.NeWist立场(ObjutField.class)告诉JAXB只考虑这个类的实例。 我觉得它应该是
JAXBContext.newInstance(MyTestObject.class)
…另外,只有当类
MyTestObject
对JAXB无效时,才需要AXBElement
构造(如果可以,请添加一个`@XmlRootElement注释)
代码可能是
JAXBContext jaxbContext = JAXBContext.newInstance(MyTestObject.class);
Marshaller marshaller = jaxbContext.createMarshaller();
MyTestObject marshallableSchedule = new MyTestObject();
marshaller.marshal(marshallableSchedule, System.out);
ObjectFactory().createMyTestObject(新的MyTestObject())
创建的对象的类是什么<代码>对象工厂?语句<代码> jxbClord.NeWist立场(ObjutField.class)告诉JAXB只考虑这个类的实例。 我觉得它应该是
JAXBContext.newInstance(MyTestObject.class)
…另外,只有当类
MyTestObject
对JAXB无效时,才需要AXBElement
构造(如果可以,请添加一个`@XmlRootElement注释)
代码可能是
JAXBContext jaxbContext = JAXBContext.newInstance(MyTestObject.class);
Marshaller marshaller = jaxbContext.createMarshaller();
MyTestObject marshallableSchedule = new MyTestObject();
marshaller.marshal(marshallableSchedule, System.out);
Eclipse使用一个复杂的类装入器系统来保持插件类路径的分离。这可能会让JAXB感到不安——我对这一点不太了解。您是否在两个测试中使用相同版本的Java?也就是说,您的EclipseRCP插件是否需要比您在main()测试中使用的更高或更低的Java版本?eclipse使用一个复杂的类装入器系统来保持插件类路径的独立。这可能会让JAXB感到不安——我对这一点不太了解。您是否在两个测试中使用相同版本的Java?也就是说,您的EclipseRCP插件是否需要比您在main()测试中使用的更高或更低的Java版本?