我将xml文件转换为Java对象。但是,我遇到了一些问题。
我有这样的XML文件:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:api="http://virtualmachine.service.instancemanager.copse.jp/">
<soap:Body>
<api:DetachVolumeResponse>
<!--Optional:-->
<DetachVolumeResponseType>
<requestId>001</requestId>
<volumeId>a</volumeId>
<instanceId>b</instanceId>
<device>c</device>
<status>d</status>
<attachTime>2012-01-23T12:00:00Z</attachTime>
</DetachVolumeResponseType>
</api:DetachVolumeResponse>
</soap:Body>
</soap:Envelope>
这是我的代码:
SOAPMessage message;
try {
message = MessageFactory.newInstance().createMessage(null,
new ClassPathResource("D:\DetachVolume.xml").getInputStream());
JAXBContext jaxbContext;
jaxbContext = JAXBContext.newInstance(DetachVolumeResponseType.class);
Unmarshaller jaxbUnmarshaller;
jaxbUnmarshaller = jaxbContext.createUnmarshaller();
DetachVolumeResponseType detachVolumeResponseType = (DetachVolumeResponseType) jaxbUnmarshaller
.unmarshal(message.getSOAPBody().extractContentAsDocument());
System.out.println(detachVolumeResponseType);
} catch (IOException | SOAPException e) {
e.printStackTrace();
}catch (JAXBException e) {
e.printStackTrace();
}
程序显示错误,找不到文件,但是我的路径文件绝对正确。 请告诉我原因以及如何解决。谢谢
答案 0 :(得分:0)
不要将d:\放在类路径资源中。
只需将文件路径相对于您的部署即可。
目标/类别 target / classes / dir1 / file1.txt
替换为此路径dir1 / file1.txt