|
17 | 17 | package org.springframework.ws.soap.axiom; |
18 | 18 |
|
19 | 19 | import java.io.ByteArrayOutputStream; |
20 | | -import java.io.UnsupportedEncodingException; |
21 | 20 |
|
22 | 21 | import javax.xml.namespace.NamespaceContext; |
23 | 22 | import javax.xml.namespace.QName; |
|
26 | 25 | import javax.xml.stream.XMLStreamWriter; |
27 | 26 | import javax.xml.transform.Result; |
28 | 27 |
|
| 28 | +import org.apache.axiom.blob.Blobs; |
29 | 29 | import org.apache.axiom.om.OMDataSource; |
30 | 30 | import org.apache.axiom.om.OMElement; |
31 | 31 | import org.apache.axiom.om.OMNamespace; |
32 | | -import org.apache.axiom.om.ds.StringOMDataSource; |
| 32 | +import org.apache.axiom.om.ds.BlobOMDataSource; |
33 | 33 | import org.apache.axiom.om.util.StAXUtils; |
34 | 34 | import org.apache.axiom.soap.SOAPBody; |
35 | 35 | import org.apache.axiom.soap.SOAPFactory; |
@@ -137,14 +137,10 @@ private void addPayload() throws XMLStreamException { |
137 | 137 | delegate.flush(); |
138 | 138 | if (baos.size() > 0) { |
139 | 139 | SOAPFactory axiomFactory = getAxiomFactory(); |
140 | | - try { |
141 | | - OMDataSource dataSource = new StringOMDataSource(baos.toString(encoding)); |
142 | | - OMNamespace namespace = axiomFactory.createOMNamespace(name.getNamespaceURI(), name.getPrefix()); |
143 | | - OMElement payloadElement = axiomFactory.createOMElement(dataSource, name.getLocalPart(), namespace); |
144 | | - getAxiomBody().addChild(payloadElement); |
145 | | - } catch (UnsupportedEncodingException e) { |
146 | | - throw new RuntimeException(e); |
147 | | - } |
| 140 | + OMDataSource dataSource = new BlobOMDataSource(Blobs.createBlob(baos.toByteArray()), encoding); |
| 141 | + OMNamespace namespace = axiomFactory.createOMNamespace(name.getNamespaceURI(), name.getPrefix()); |
| 142 | + OMElement payloadElement = axiomFactory.createOMElement(dataSource, name.getLocalPart(), namespace); |
| 143 | + getAxiomBody().addChild(payloadElement); |
148 | 144 | payloadAdded = true; |
149 | 145 | } |
150 | 146 | } |
|
0 commit comments