我一直在JaxB和NetBeans JaxWs上苦苦掙扎。 如果我在普通的java web應用程序中解組使用java類,我得到我打印的xml文件的結果。 如果我然後在soap webservice方法中使用相同的解組代碼,並且執行web服務測試,則總是返回空值。Unmarshall與JaxB在Web服務(肥皂)Netbeans
如何在netbeans的webservice方法中解組xml文件?
這裏是我的web服務方法的代碼部分:
@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>
我希望得到任何幫助,指導在這一刻。 。
它仍然返回null,似乎沒有初始化JAXB try塊都 – Ttola
難道你的服務器日誌打印任何錯誤,然後作爲試未執行你釣到的魚應該 – Ayodeji