1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.test.support.creator;
18
19 import java.io.IOException;
20 import javax.xml.transform.Source;
21 import javax.xml.transform.TransformerException;
22 import javax.xml.transform.dom.DOMResult;
23
24 import org.springframework.util.Assert;
25 import org.springframework.ws.WebServiceMessage;
26 import org.springframework.ws.soap.SoapMessage;
27 import org.springframework.xml.transform.TransformerHelper;
28
29 import org.w3c.dom.Document;
30
31 import static org.springframework.ws.test.support.AssertionErrors.assertTrue;
32 import static org.springframework.ws.test.support.AssertionErrors.fail;
33
34
35
36
37
38
39
40 public class SoapEnvelopeMessageCreator extends AbstractMessageCreator {
41
42 private final Source soapEnvelope;
43
44 private final TransformerHelper transformerHelper = new TransformerHelper();
45
46
47
48
49
50
51 public SoapEnvelopeMessageCreator(Source soapEnvelope) {
52 Assert.notNull(soapEnvelope, "'soapEnvelope' must not be null");
53 this.soapEnvelope = soapEnvelope;
54 }
55
56 @Override
57 protected void doWithMessage(WebServiceMessage message) throws IOException {
58 assertTrue("Message created with factory is not a SOAP message", message instanceof SoapMessage);
59 SoapMessage soapMessage = (SoapMessage) message;
60 try {
61 DOMResult result = new DOMResult();
62 transformerHelper.transform(soapEnvelope, result);
63 soapMessage.setDocument((Document) result.getNode());
64 }
65 catch (TransformerException ex) {
66 fail("Could not transform request SOAP envelope to message: " + ex.getMessage());
67 }
68 }
69
70 }