我想对映射器对象进行单元测试,这些映射器对象将wsimport生成的Web服务类型映射/转换为我自己的域对象。我还想测试错误场景,例如SOAP错误等,我认为最好在真正的SOAP响应上测试映射器对象。我不想向Web服务本身发出请求,因为这需要访问Web服务,并为每次测试提供往返时间。
鉴于这种情况,我正在寻求从包含SOAP Envelope的特定XML文件解组SOAP消息。我想解组SOAP Envelope,然后将正文中的有效负载解组为相应的Java类型。
我已经设法通过使用JAXB解组来解组有效负载本身,但我还没有找到一种方法来允许我使用类似的SOAP错误来处理SOAP响应。
是否有一种方法可以让SOAP Envelope XML文件以简单的方式测试我的映射器?
答案 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));