我试图解组一个使用 jaxb 的 xml 文件,它是 netbeans 中 web 服务方法中的一个 xml 文件。
结果是解组永远不会完成。我在某个地方读到肥皂信封是在 jaxb 操作之前形成的。我是这个的新手。
如果有人可以简单地解释如何从 jax ws 肥皂消息上的 xml 文件中获取 xml 数据。
这就是我的网络服务方法代码:
@WebMethod(operationName = "getData")
public String getData() {
try {
//List<String> listing = new ArrayList();
StringBuilder str = new StringBuilder();
FlightList flights = new FlightList();
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(flights.getClass().getPackage().getName());
javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
flights = (FlightList) unmarshaller.unmarshal(new java.io.File("flights.xml")); //NOI18N
for (Flight f : flights.getAvailableFlight()) {
str.append(f.getDestinationCity());
}
String myString = str.toString();
return myString;
} catch (javax.xml.bind.JAXBException ex) {
// XXXTODO Handle exception
System.out.println("Error occured" + ex);
}
return null;
}
和我的架构文件:
<xsd:complexType name="Flight">
<xsd:sequence>
<xsd:element name="aircraftVendor" type="xsd:string"></xsd:element>
<xsd:element name="aircraftCode" type="xsd:string"></xsd:element>
<xsd:element name="aircraftType" type="xsd:string"></xsd:element>
<xsd:element name="fare" type="tns:Fare"/>
</xsd:sequence>
<xsd:element name="FlightList">
<xsd:complexType>
<xsd:sequence >
<xsd:element name="availableFlight" type="tns:Flight" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Fare">
<xsd:attribute name="amount" type="tns:Value" use="required"/>
</xsd:complexType>