从Java中的文件解组SOAP信封

时间:2010-09-22 11:52:28

标签: java soap xml-deserialization unmarshalling

我想对映射器对象进行单元测试,这些映射器对象将wsimport生成的Web服务类型映射/转换为我自己的域对象。我还想测试错误场景,例如SOAP错误等,我认为最好在真正的SOAP响应上测试映射器对象。我不想向Web服务本身发出请求,因为这需要访问Web服务,并为每次测试提供往返时间。

鉴于这种情况,我正在寻求从包含SOAP Envelope的特定XML文件解组SOAP消息。我想解组SOAP Envelope,然后将正文中的有效负载解组为相应的Java类型。

我已经设法通过使用JAXB解组来解组有效负载本身,但我还没有找到一种方法来允许我使用类似的SOAP错误来处理SOAP响应。

是否有一种方法可以让SOAP Envelope XML文件以简单的方式测试我的映射器?

1 个答案:

答案 0 :(得分:3)

您是否尝试过标准的Java SOAP API(javax.xml.soap)?

这样的事情:

  MessageFactory mf = MessageFactory.newInstance();
  SOAPMessage message = mf.createMessage();
  SOAPPart soapPart = message.getSOAPPart();
  FileInputStream is = new FileInputStream(file);
  soapPart.setContent(new StreamSource(is));