使用 WSDL 提取对 Web 服务的完整 xml 提交

Extracting full xml submission to web service using WSDL

我正在开发一个项目,通过创建一个集合将每个 Java 属性与其对应的 XML 元素相关联,将 XML 映射到 Java 类型。我的代码与这个例子非常相似:

private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(Login.class, true);

static {
    typeDesc.setXmlType(new javax.xml.namespace.QName("http://schemas.actuate.com/actuate11", "Login"));
    org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc( );
    elemField.setFieldName("user");
    elemField.setXmlName(new javax.xml.namespace.QName("http://schemas.actuate.com/actuate11", "User"));
    elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
    elemField.setNillable(false);
    typeDesc.addFieldDesc(elemField);
}

哪个工作正常。我想知道的是,是否有一种方法可以将这个 class 处理的整个 XML 提交实际保存到一个可以单独输出的变量中。

提前致谢。

1.Use @XmlMimeType("application/octet-stream") DataHandler 数据来处理传入的附件。

2.Create 用于存储 xml 的临时文件:File tmpFile = new File(fileName);

  1. 调用 writeStreamToFile(dataHandler.getInputStream(), tmpFile) 从 dataHandler 读取流并写入 tmpFile

    writeStreamToFile(InputStream inputStream, File file) throws IOException {
        BufferedReader br = null;
        FileWriter writer = null;
    
            br = new BufferedReader(new InputStreamReader(inputStream));
            writer = new FileWriter(file);
            String line = null;
            while((line=br.readLine()) != null)
            {
                writer.append(line);
            }
        }
    

4.Close 适当地播放。