无法从SOAPMessage中提取body

时间:2014-02-18 17:03:47

标签: java web-services soap

我正在尝试从SOAPMessage中提取正文并得到一些奇怪的结果。下面的示例代码应该有助于说明我的问题:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
message.writeTo(baos);
String messageString = baos.toString();
System.out.println("SOAP Message: " + messageString);

System.out.println("Body: " + message.getSOAPBody());

输出:

SOAP Message: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://adc.appcomsci.com/schema">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <sch:computeConfigurationResponse>
            <sch:file>
                <sch:url>http://goodSolution.com</sch:url>
                <sch:configurationFileType>Solution</sch:configurationFileType>
            </sch:file>
            <sch:file>
                <sch:url>http://error.com</sch:url>
                <sch:configurationFileType>Diagnosis</sch:configurationFileType>
            </sch:file>
        </sch:computeConfigurationResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Body: [SOAP-ENV:Body: null]

任何想法为什么身体在这里是空的?这不是提取身体进行处理的正确方法吗?如果没有,我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:0)

没关系,我想通了。

打印出来的实体并不会实际呈现身体中存在的xml,只是实际的body标签,在这种情况下没有属性或文本,因此为null。