【发布时间】:2012-03-11 10:23:11
【问题描述】:
我有一个 servlet,它使用 JAXB 来解组和编组一个我自己制作的 XML 文件。我的问题是,如果不提供 XML 文件的完整本地路径(即编组器),我就无法解组或编组 XML 文件。这样做的问题是我无法将项目交付给我的朋友,而他不需要编辑 XML 文件的本地路径。我的解组代码如下所示
ObjectFactory factory = new ObjectFactory();
CarList cl = factory.createCarList();
try {
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(cl.getClass().getPackage().getName());
javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
cl = (CarList) unmarshaller.unmarshal(new java.io.File("/Users/martin/NetBeansProjects/Web-Mandatory-Assignment-Part1/web/resources/xml/Cars.xml")); //NOI18N
} catch (javax.xml.bind.JAXBException ex) {
java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
}
如您所见,我需要使用 '/Users/martin/NetBeansProjects/Web-Mandatory-Assignment-Part1/web/resources/xml/Cars.xml' 作为文件的路径,但我想要它做,是使用类似'xml/resources/Cars.xml'的东西。我怎样才能使这项工作:)
【问题讨论】:
-
您是否尝试过将文件作为应用的资源嵌入并使用类加载器加载?
-
这就是@GuillaumePolet 所说的:
http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String) -
不,我没试过。我会看看那个方法,然后回复你:)
标签: java jsp servlets jaxb relative-path