La lecture d'un fichier à partir du dossier de ressources
j'ai un projet maven de la structure où j'ai src/main/resources/json/test.xml fichier présent, je suis en train de lire cela, utilisez le code suivant, mais ne pourra pas le lire.Je suis arriver ne peut pas trouver le fichier spécifié.J'ai passer un objet fichier à unmarshal fonction ,comment puis-je faire cela à l'aide d'autres apporach
File file = new File("json\\test.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(ServiceApi.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
ServiceApi customer = (ServiceApi) jaxbUnmarshaller.unmarshal(file);
System.out.println(customer.getService().size());
L'exception est
javax.xml.bind.UnmarshalException
- with linked exception:
[java.io.FileNotFoundException: C:\Users\jayesh_shah\Downloads\dbt-dataformstub\json\test.xml (The system cannot find the path specified)]
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:202)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:173)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:142)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:151)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:169)
at com.ge.stub.api.jaxb.JAXBExample.main(JAXBExample.java:17)
Caused by: java.io.FileNotFoundException: C:\Users\jayesh_shah\Downloads\dbt-dataformstub\json\test.xml (The system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:200)
... 6 more
pouvez-vous poster le message d'exception?
ont ajouté l'exception
ont ajouté l'exception
OriginalL'auteur sheetal_r oswal | 2012-02-18
Vous devez vous connecter pour publier un commentaire.
Le dossier de ressources est fusionné dans les classes générées dossier par maven lors de la construction. De sorte que vous pouvez obtenir une
InputStream
pour ce fichier via:JAXB peut unmarshal de
InputStream
s, et le fichier se trouve en utilisant les mêmes règles utilisées par leClassLoader
qui défini la classeYourClassName
. (Voir getResourceAsStream pour plus d'info.)OriginalL'auteur Hauke Ingmar Schmidt