Java RCP eclipse项目中的JAXB
我一直在尝试使用JAXB绑定来读取java应用程序中的xml文件。 到目前为止,我已经能够完成以下步骤:Java RCP eclipse项目中的JAXB,java,eclipse,jpa,jaxb,rcp,Java,Eclipse,Jpa,Jaxb,Rcp,我一直在尝试使用JAXB绑定来读取java应用程序中的xml文件。 到目前为止,我已经能够完成以下步骤: File file = new File("path/to/my.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(testxml.Device.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); Device device = (D
File file = new File("path/to/my.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(testxml.Device.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Device device = (Device) jaxbUnmarshaller.unmarshal(file);
System.out.println(device.getName());
- 为我拥有的.xml生成.xsd
- 使用jaxb-compiler.cmd生成java类(我在windows上运行)
- 使用生成的“device.java”、“objectfactory.java”和jaxb.properties
- 创建执行以下步骤的java应用程序:
File file = new File("path/to/my.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(testxml.Device.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); Device device = (Device) jaxbUnmarshaller.unmarshal(file); System.out.println(device.getName());
[java.lang.ClassNotFoundException:org.eclipse.persistence.jaxb.JAXBContextFactory]
为了解决这个问题,我按照论坛的建议将项目转换为JPA项目,并在过程中为EclipseLink定义用户库(将其链接到EclipseLink v 2.6.2,我已下载)
我正在从事的项目是一个EclipseRCP。它需要读取XML文件的内容。
我尝试了相同的步骤,在EclipseMars中创建了样例RCP项目,并向其中添加了我的XMLJava类,但得到了相同的错误。
尝试从包资源管理器执行相同的过程:配置>>转换为JPA并没有解决问题
我检查了.classpath以验证是否列出了eclipselink,并且它是。在第一次调用获取JAXB上下文时总是失败
根据论坛的其他建议,我尝试:
jaxbContext = JAXBContextFactory.createContext("my_package", Device.class.getClassLoader());
这在同一个类上给出了java.lang.NoClassDefFoundError
如果我在eclipse的项目资源管理器中查看该项目,我可以看到eclipselink库,并且我可以深入eclipselink.jar并在其中找到有问题的“org.eclipse.persistence.jaxb.JAXBContextFactory”类
到目前为止,看看Lars Vogel的网站,教程很棒,只要我不尝试在其中使用JAXB,RCP生成就可以工作。此外,Blaise Doughan的博客和评论非常有意义,只是这种组合(RCP+EclipseLink)对我根本不起作用:(
任何关于如何解决这一问题的想法都将不胜感激