-1

我试图解组一个使用 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>
4

1 回答 1

0

我想在这种情况下最简单的方法是将文件内容作为字符串参数传递给 Web 服务方法,然后在该方法实现中解组字符串。

所以网络服务应该是这样的:

@WebService(endpointInterface = "org.foo.SomeEndpoint")
public class SomServiceImpl implements SomeService{

    @Override
    public void uploadFile(String fileName, String fileContent) {
        // unmarshall fileContent into a file called fileName and do whatever you need
    }

}

如何从字符串中解组 XML 文件。.

您不应混淆与 Web 服务消息相关的 XML 和文件中的 XML。从 webservice 层的角度来看,文件内容只是一些要传输的数据,把这些东西分开处理比较简单。

于 2013-05-27T20:08:23.600 回答