嗨,我已经使用wsimport从WSDL生成了java类,但是我已经将响应写到了一个文件*.xml中。但是现在我想读取这个xml文件并填充已经生成的java类。
我试过:
JAXBContext jc = JAXBContext.newInstance(Report.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Report rc = (Report) unmarshaller.unmarshal(source);
JAXBContext jc = JAXBContext.newInstance(Report.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Report rc = (Report) unmarshaller.unmarshal(new File("file.xml"));
javax.xml.bind.UnmarshalException: unexpected element (uri: "", local:"soap:Envelope") Expected elements are: (<{"http://pagewhereisthewsdl.com"}CLASSES>)+
javax.xml.bind.UnmarshalException: unexpected element (uri: "http://schemas.xmlsoap.org/soap/envelope/", local:"Envelope") Expected elements are: (<{"http://pagewhereisthewsdl.com"}CLASSES>)+
XML如下所示:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns3:GetReportOnlineResponse xmlns:ns2="http://pagewhereisthewsdl.com/document" xmlns:ns3="http://pagewhereisthewsdl.com/endpoint">
<ns2:Report>
...
</ns2:Report>
</ns3:GetReporteOnlineResponse>
</soap:Body>
</soap:Envelope>
或者我能做什么?
我相信你没有把肥皂信封考虑在内。你需要先提取身体的内容。
String xml = "<INSERT XML>";
SOAPMessage message = MessageFactory.newInstance().createMessage(null, new ByteArrayInputStream(xml.getBytes()));
JAXBContext jc = JAXBContext.newInstance(Report.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Report rc = (Report) unmarshaller.unmarshal(message.getSOAPBody().extractContentAsDocument());
从xml反编组时遇到异常 } 我为systemUnit类添加了注释@xmlRootelement(name=“systemUnit”)。 有人能帮我解决这个问题吗
我在将XML响应从服务转换为POJO时遇到一个异常。XML如下所示: 我是这样用的: 下面是我的文件的详细信息 包-info.java ItemLink.java ItemLinks.java
你可以在这个网站找到很多这样的问题,但没有一个解决了我的问题。 这是我的XML: 我已经使用XJC编译器创建了Jaxb类,创建的文件如下所示:
重要提示:我想说明我已经读过javax.xml.bind.UnmarshalException:意外元素。预期的元素是(无),并尝试了建议的解决方案,但没有成功。 我尝试将反序列化为用生成的类。这是代码: 这是一个错误: UnMarshalException:意外元素(URI:“”,local:“id”)。所需元素为(无) 这是原始的: 我使用的是8(Azul ZuluFx 8.0.202)和2.
我知道有很多像这样的问题,但没有一个给我提供正确的答案,所以我来这里。 下面是我得到的XML: 下面是相关的java类: