JAXBを使用してXMLファイルをマーシャリングするサーブレットがあります。私の問題は、マーシャラーであるXMLファイルに完全なローカルパスを与えることなく、XMLファイルを非整列化またはマーシャリングできないことです。この問題は、XMLファイルのローカルパスを編集する必要がなく、私の友人にプロジェクトを配信できないということです。 uは私が使用する必要が見ることができるように「/Users/martin/NetBeansProjects/Web-Mandatory-Assignment-Part1/web/resources/xml/Cars.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
}
のように見えますファイルのパスですが、これをやりたいのは、代わりに 'xml/resources/Cars.xml'のようなsomehtingを使うことです。どうすればいいですか?
あなたはあなたのアプリケーションのリソースとしてファイルを埋め込むしようとしたクラスローダでそれをロードしていますか? –
これは@GuillaumePoletが話していることです: 'http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)' – bezmax
いいえ、私はそれを試していない。私はその方法を見て、あなたに戻ってきます:) –