diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Body.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Body.java index 6249d7a8..b4a1cad0 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Body.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Body.java @@ -19,6 +19,7 @@ package org.springframework.ws.soap.axiom; import java.util.Locale; import javax.xml.namespace.QName; +import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMNamespace; import org.apache.axiom.soap.SOAP11Constants; import org.apache.axiom.soap.SOAPBody; @@ -26,8 +27,6 @@ import org.apache.axiom.soap.SOAPFactory; import org.apache.axiom.soap.SOAPFault; import org.apache.axiom.soap.SOAPFaultCode; import org.apache.axiom.soap.SOAPFaultReason; -import org.apache.axiom.soap.SOAPFaultText; -import org.apache.axiom.soap.SOAPFaultValue; import org.apache.axiom.soap.SOAPProcessingException; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -79,14 +78,12 @@ class AxiomSoap11Body extends AxiomSoapBody implements Soap11Body { detachAllBodyChildren(); SOAPFault fault = axiomFactory.createSOAPFault(axiomBody); SOAPFaultCode faultCode = axiomFactory.createSOAPFaultCode(fault); - SOAPFaultValue faultCodeValue = axiomFactory.createSOAPFaultValue(faultCode); - setValueText(code, fault, faultCodeValue); + setValueText(code, fault, faultCode); SOAPFaultReason faultReason = axiomFactory.createSOAPFaultReason(fault); - SOAPFaultText faultText = axiomFactory.createSOAPFaultText(faultReason); if (locale != null) { - faultText.setLang(AxiomUtils.toLanguage(locale)); + addLangAttribute(locale, faultReason); } - faultText.setText(faultString); + faultReason.setText(faultString); return new AxiomSoap11Fault(fault, axiomFactory); } @@ -96,7 +93,7 @@ class AxiomSoap11Body extends AxiomSoapBody implements Soap11Body { } - private void setValueText(QName code, SOAPFault fault, SOAPFaultValue faultValue) { + private void setValueText(QName code, SOAPFault fault, SOAPFaultCode faultCode) { String prefix = QNameUtils.getPrefix(code); if (StringUtils.hasLength(code.getNamespaceURI()) && StringUtils.hasLength(prefix)) { OMNamespace namespace = fault.findNamespaceURI(prefix); @@ -111,7 +108,34 @@ class AxiomSoap11Body extends AxiomSoapBody implements Soap11Body { } code = QNameUtils.createQName(code.getNamespaceURI(), code.getLocalPart(), namespace.getPrefix()); } - faultValue.setText(prefix + ":" + code.getLocalPart()); + faultCode.setText(code); } + private SOAPFault addStandardFault(String localName, String faultString, Locale locale) { + Assert.notNull(faultString, "No faultString given"); + try { + detachAllBodyChildren(); + SOAPFault fault = axiomFactory.createSOAPFault(axiomBody); + SOAPFaultCode faultCode = axiomFactory.createSOAPFaultCode(fault); + faultCode.setText( + new QName(fault.getNamespace().getNamespaceURI(), localName, fault.getNamespace().getPrefix())); + SOAPFaultReason faultReason = axiomFactory.createSOAPFaultReason(fault); + if (locale != null) { + addLangAttribute(locale, faultReason); + } + faultReason.setText(faultString); + return fault; + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapFaultException(ex); + } + } + + private void addLangAttribute(Locale locale, SOAPFaultReason faultReason) { + OMNamespace xmlNamespace = axiomFactory.createOMNamespace("http://www.w3.org/XML/1998/namespace", "xml"); + OMAttribute langAttribute = axiomFactory.createOMAttribute("lang", xmlNamespace, AxiomUtils.toLanguage(locale)); + faultReason.addAttribute(langAttribute); + } + + } diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Fault.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Fault.java index a45d4081..5aca46c3 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Fault.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Fault.java @@ -17,10 +17,11 @@ package org.springframework.ws.soap.axiom; import java.util.Locale; +import javax.xml.namespace.QName; +import org.apache.axiom.om.OMAttribute; import org.apache.axiom.soap.SOAPFactory; import org.apache.axiom.soap.SOAPFault; -import org.apache.axiom.soap.SOAPFaultText; import org.springframework.ws.soap.axiom.support.AxiomUtils; import org.springframework.ws.soap.soap11.Soap11Fault; @@ -35,21 +36,23 @@ class AxiomSoap11Fault extends AxiomSoapFault implements Soap11Fault { super(axiomFault, axiomFactory); } + public QName getFaultCode() { + return axiomFault.getCode().getTextAsQName(); + } + public String getFaultStringOrReason() { if (axiomFault.getReason() != null) { - SOAPFaultText soapText = axiomFault.getReason().getFirstSOAPText(); - if (soapText != null) { - return soapText.getText(); - } + return axiomFault.getReason().getText(); } return null; } public Locale getFaultStringLocale() { if (axiomFault.getReason() != null) { - SOAPFaultText soapText = axiomFault.getReason().getFirstSOAPText(); - if (soapText != null) { - String xmlLangString = soapText.getLang(); + OMAttribute langAttribute = + axiomFault.getReason().getAttribute(new QName("http://www.w3.org/XML/1998/namespace", "lang")); + if (langAttribute != null) { + String xmlLangString = langAttribute.getAttributeValue(); if (xmlLangString != null) { return AxiomUtils.toLocale(xmlLangString); } diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Body.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Body.java index ee65c130..0c2ce456 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Body.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Body.java @@ -23,8 +23,14 @@ import org.apache.axiom.soap.SOAP12Constants; import org.apache.axiom.soap.SOAPBody; import org.apache.axiom.soap.SOAPFactory; import org.apache.axiom.soap.SOAPFault; +import org.apache.axiom.soap.SOAPFaultCode; +import org.apache.axiom.soap.SOAPFaultReason; +import org.apache.axiom.soap.SOAPFaultText; +import org.apache.axiom.soap.SOAPFaultValue; +import org.apache.axiom.soap.SOAPProcessingException; import org.springframework.util.Assert; import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.axiom.support.AxiomUtils; import org.springframework.ws.soap.soap12.Soap12Body; import org.springframework.ws.soap.soap12.Soap12Fault; @@ -69,4 +75,26 @@ class AxiomSoap12Body extends AxiomSoapBody implements Soap12Body { return new AxiomSoap12Fault(fault, axiomFactory); } + private SOAPFault addStandardFault(String localName, String faultStringOrReason, Locale locale) { + Assert.notNull(faultStringOrReason, "No faultStringOrReason given"); + try { + detachAllBodyChildren(); + SOAPFault fault = axiomFactory.createSOAPFault(axiomBody); + SOAPFaultCode code = axiomFactory.createSOAPFaultCode(fault); + SOAPFaultValue value = axiomFactory.createSOAPFaultValue(code); + value.setText(fault.getNamespace().getPrefix() + ":" + localName); + SOAPFaultReason reason = axiomFactory.createSOAPFaultReason(fault); + SOAPFaultText text = axiomFactory.createSOAPFaultText(reason); + if (locale != null) { + text.setLang(AxiomUtils.toLanguage(locale)); + } + text.setText(faultStringOrReason); + return fault; + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapFaultException(ex); + } + } + + } diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Fault.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Fault.java index 15691945..b5019db0 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Fault.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Fault.java @@ -37,20 +37,22 @@ import org.springframework.ws.soap.axiom.support.AxiomUtils; import org.springframework.ws.soap.soap12.Soap12Fault; import org.springframework.xml.namespace.QNameUtils; -/** - * Axiom-specific version of org.springframework.ws.soap.Soap12Fault. - */ +/** Axiom-specific version of org.springframework.ws.soap.Soap12Fault. */ class AxiomSoap12Fault extends AxiomSoapFault implements Soap12Fault { AxiomSoap12Fault(SOAPFault axiomFault, SOAPFactory axiomFactory) { super(axiomFault, axiomFactory); } + public QName getFaultCode() { + return axiomFault.getCode().getValue().getTextAsQName(); + } + public Iterator getFaultSubcodes() { List subcodes = new ArrayList(); SOAPFaultSubCode subcode = axiomFault.getCode().getSubCode(); while (subcode != null) { - subcodes.add(getFaultCode(subcode.getValue())); + subcodes.add(subcode.getValue().getTextAsQName()); subcode = subcode.getSubCode(); } return subcodes.iterator(); diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBody.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBody.java index 7930c8e6..9236971b 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBody.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBody.java @@ -17,7 +17,6 @@ package org.springframework.ws.soap.axiom; import java.util.Iterator; -import java.util.Locale; import javax.xml.namespace.QName; import javax.xml.transform.Result; import javax.xml.transform.Source; @@ -28,15 +27,9 @@ import org.apache.axiom.om.OMException; import org.apache.axiom.soap.SOAPBody; import org.apache.axiom.soap.SOAPFactory; import org.apache.axiom.soap.SOAPFault; -import org.apache.axiom.soap.SOAPFaultCode; -import org.apache.axiom.soap.SOAPFaultReason; -import org.apache.axiom.soap.SOAPFaultText; -import org.apache.axiom.soap.SOAPFaultValue; -import org.apache.axiom.soap.SOAPProcessingException; import org.springframework.util.Assert; import org.springframework.ws.soap.SoapBody; import org.springframework.ws.soap.SoapFault; -import org.springframework.ws.soap.axiom.support.AxiomUtils; import org.springframework.xml.transform.StaxSource; /** @@ -116,24 +109,4 @@ abstract class AxiomSoapBody implements SoapBody { } - protected SOAPFault addStandardFault(String localName, String faultStringOrReason, Locale locale) { - Assert.notNull(faultStringOrReason, "No faultStringOrReason given"); - try { - detachAllBodyChildren(); - SOAPFault fault = axiomFactory.createSOAPFault(axiomBody); - SOAPFaultCode code = axiomFactory.createSOAPFaultCode(fault); - SOAPFaultValue value = axiomFactory.createSOAPFaultValue(code); - value.setText(fault.getNamespace().getPrefix() + ":" + localName); - SOAPFaultReason reason = axiomFactory.createSOAPFaultReason(fault); - SOAPFaultText text = axiomFactory.createSOAPFaultText(reason); - if (locale != null) { - text.setLang(AxiomUtils.toLanguage(locale)); - } - text.setText(faultStringOrReason); - return fault; - } - catch (SOAPProcessingException ex) { - throw new AxiomSoapFaultException(ex); - } - } } diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFault.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFault.java index 16bf3b83..a8e738ca 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFault.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFault.java @@ -16,20 +16,21 @@ package org.springframework.ws.soap.axiom; -import org.apache.axiom.om.OMException; -import org.apache.axiom.soap.*; -import org.springframework.util.Assert; -import org.springframework.ws.soap.SoapFault; -import org.springframework.ws.soap.SoapFaultDetail; -import org.springframework.xml.namespace.QNameUtils; -import org.springframework.xml.transform.StaxSource; - import javax.xml.namespace.QName; import javax.xml.transform.Source; -/** - * @author Arjen Poutsma - */ +import org.apache.axiom.om.OMException; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPFault; +import org.apache.axiom.soap.SOAPFaultDetail; +import org.apache.axiom.soap.SOAPFaultRole; +import org.apache.axiom.soap.SOAPProcessingException; +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.xml.transform.StaxSource; + +/** @author Arjen Poutsma */ abstract class AxiomSoapFault implements SoapFault { protected final SOAPFault axiomFault; @@ -51,22 +52,6 @@ abstract class AxiomSoapFault implements SoapFault { return new StaxSource(axiomFault.getXMLStreamReader()); } - public QName getFaultCode() { - return getFaultCode(axiomFault.getCode().getValue()); - } - - /** - * Axiom 1.0's getTextAsQName is broken for SOAPFaultValues, hence this. - */ - protected QName getFaultCode(SOAPFaultValue value) { - String text = value.getText(); - int idx = text.indexOf(':'); - String prefix = text.substring(0, idx); - String localPart = text.substring(idx + 1); - String namespaceUri = axiomFault.getCode().getValue().findNamespaceURI(prefix).getNamespaceURI(); - return QNameUtils.createQName(namespaceUri, localPart, prefix); - } - public String getFaultActorOrRole() { SOAPFaultRole faultRole = axiomFault.getRole(); return faultRole != null ? faultRole.getRoleValue() : null; diff --git a/core/src/test/java/org/springframework/ws/soap/AbstractSoapMessageTestCase.java b/core/src/test/java/org/springframework/ws/soap/AbstractSoapMessageTestCase.java index 57182a31..9751787d 100644 --- a/core/src/test/java/org/springframework/ws/soap/AbstractSoapMessageTestCase.java +++ b/core/src/test/java/org/springframework/ws/soap/AbstractSoapMessageTestCase.java @@ -26,7 +26,6 @@ import org.springframework.util.FileCopyUtils; import org.springframework.util.StringUtils; import org.springframework.ws.AbstractWebServiceMessageTestCase; import org.springframework.ws.WebServiceMessage; -import org.springframework.xml.transform.StringResult; import org.springframework.xml.validation.XmlValidator; import org.springframework.xml.validation.XmlValidatorFactory; import org.xml.sax.SAXParseException; @@ -59,14 +58,6 @@ public abstract class AbstractSoapMessageTestCase extends AbstractWebServiceMess assertFalse("Attachment iterator has too many elements", iterator.hasNext()); } - public void testWriteTo() throws Exception { - StringResult stringResult = new StringResult(); - transformer.transform(soapMessage.getEnvelope().getSource(), stringResult); - ByteArrayOutputStream os = new ByteArrayOutputStream(); - soapMessage.writeTo(os); - assertXMLEqual(stringResult.toString(), os.toString("UTF-8")); - } - public void testValidate() throws Exception { XmlValidator validator = XmlValidatorFactory.createValidator(getSoapSchemas(), XmlValidatorFactory.SCHEMA_W3C_XML); @@ -84,5 +75,9 @@ public abstract class AbstractSoapMessageTestCase extends AbstractWebServiceMess protected abstract Resource[] getSoapSchemas(); + public abstract void testGetVersion() throws Exception; + public abstract void testWriteToTransportOutputStream() throws Exception; + + public abstract void testWriteToTransportResponseAttachment() throws Exception; } diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11BodyTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11BodyTest.java index 491fb7f7..acbf21be 100644 --- a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11BodyTest.java +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11BodyTest.java @@ -1,73 +1,16 @@ package org.springframework.ws.soap.axiom; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.Result; -import javax.xml.transform.dom.DOMSource; - import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.soap.SOAPFactory; import org.springframework.ws.soap.SoapBody; -import org.springframework.ws.soap.SoapVersion; import org.springframework.ws.soap.soap11.AbstractSoap11BodyTestCase; -import org.springframework.ws.soap.soap11.Soap11Body; -import org.springframework.ws.soap.soap11.Soap11Fault; -import org.springframework.xml.transform.StringResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; public class AxiomSoap11BodyTest extends AbstractSoap11BodyTestCase { - private AxiomSoapMessage axiomSoapMessage; - - private DocumentBuilder documentBuilder; - protected SoapBody createSoapBody() throws Exception { SOAPFactory axiomFactory = OMAbstractFactory.getSOAP11Factory(); - axiomSoapMessage = new AxiomSoapMessage(axiomFactory); - DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); - documentBuilderFactory.setNamespaceAware(true); - documentBuilder = documentBuilderFactory.newDocumentBuilder(); + AxiomSoapMessage axiomSoapMessage = new AxiomSoapMessage(axiomFactory); return axiomSoapMessage.getSoapBody(); } - public void testAddFault() throws Exception { - QName faultCode = new QName("http://www.springframework.org", "fault", "spring"); - String faultString = "faultString"; - Soap11Fault fault = ((Soap11Body) soapBody).addFault(faultCode, faultString, null); - assertNotNull("Null returned", fault); - assertTrue("SoapBody has no fault", soapBody.hasFault()); - assertNotNull("SoapBody has no fault", soapBody.getFault()); - assertEquals("Invalid fault code", faultCode, fault.getFaultCode()); - assertEquals("Invalid fault string", faultString, fault.getFaultStringOrReason()); - String actor = "http://www.springframework.org/actor"; - fault.setFaultActorOrRole(actor); - assertEquals("Invalid fault actor", actor, fault.getFaultActorOrRole()); - assertPayloadEqual("" + "spring:fault" + - "" + faultString + "" + "" + actor + "" + - ""); - } - - /** - * Overriden because of http://issues.apache.org/jira/browse/WSCOMMONS-38. Axiom does not return valid xml - */ - protected void assertPayloadEqual(String expectedPayload) throws Exception { - ByteArrayOutputStream os = new ByteArrayOutputStream(); - axiomSoapMessage.writeTo(os); - Document document = documentBuilder.parse(new ByteArrayInputStream(os.toByteArray())); - NodeList nodes = document.getElementsByTagNameNS(SoapVersion.SOAP_11.getEnvelopeNamespaceUri(), "Body"); - assertEquals("No Body found", 1, nodes.getLength()); - assertEquals("No Body found", Node.ELEMENT_NODE, nodes.item(0).getNodeType()); - Element bodyElement = (Element) nodes.item(0); - Element firstChild = (Element) bodyElement.getFirstChild(); - Result result = new StringResult(); - transformer.transform(new DOMSource(firstChild), result); - assertXMLEqual("Invalid payload contents", expectedPayload, result.toString()); - } } diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageTest.java index 027429d4..d981118c 100644 --- a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageTest.java +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageTest.java @@ -13,7 +13,7 @@ public class AxiomSoap11MessageTest extends AbstractSoap11MessageTestCase { } public void testAttachments() throws Exception { - // Attachment support not supported + // Attachment not supported } public void testWriteToTransportResponseAttachment() throws Exception { diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageTest.java index 33172fe5..84e5b98a 100644 --- a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageTest.java +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageTest.java @@ -36,6 +36,7 @@ public class SaajSoap11MessageTest extends AbstractSoap11MessageTestCase { protected final SoapMessage createSoapMessage() throws Exception { MessageFactory messageFactory = MessageFactory.newInstance(); saajMessage = messageFactory.createMessage(); + saajMessage.getSOAPHeader().detachNode(); return new SaajSoapMessage(saajMessage); } diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageTest.java index 5188df46..01965496 100644 --- a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageTest.java +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageTest.java @@ -34,6 +34,7 @@ public class SaajSoap12MessageTest extends AbstractSoap12MessageTestCase { protected SoapMessage createSoapMessage() throws Exception { MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); saajMessage = messageFactory.createMessage(); + saajMessage.getSOAPHeader().detachNode(); return new SaajSoapMessage(saajMessage); } diff --git a/core/src/test/java/org/springframework/ws/soap/server/endpoint/interceptor/PayloadValidatingInterceptorTest.java b/core/src/test/java/org/springframework/ws/soap/server/endpoint/interceptor/PayloadValidatingInterceptorTest.java index 29dc972e..065a2c5e 100644 --- a/core/src/test/java/org/springframework/ws/soap/server/endpoint/interceptor/PayloadValidatingInterceptorTest.java +++ b/core/src/test/java/org/springframework/ws/soap/server/endpoint/interceptor/PayloadValidatingInterceptorTest.java @@ -276,8 +276,8 @@ public class PayloadValidatingInterceptorTest extends XMLTestCase { ByteArrayOutputStream os = new ByteArrayOutputStream(); messageContext.getResponse().writeTo(os); assertXMLEqual("" + - "" + "" + "" + "soapenv:Client" + - "Validation error" + "" + + "" + "" + "soapenv:Client" + + "Validation error" + "" + "Message 1" + "Message 2" + "" + "" + "" + "", os.toString()); diff --git a/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11MessageTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11MessageTestCase.java index 87a70b05..3a2e39e4 100644 --- a/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11MessageTestCase.java +++ b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11MessageTestCase.java @@ -37,13 +37,6 @@ public abstract class AbstractSoap11MessageTestCase extends AbstractSoapMessageT Assert.assertEquals("Invalid SOAP version", SoapVersion.SOAP_11, soapMessage.getVersion()); } - public void testWriteToOutputStream() throws Exception { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - soapMessage.writeTo(outputStream); - assertXMLEqual("
", - new String(outputStream.toByteArray(), "UTF-8")); - } - public void testWriteToTransportOutputStream() throws Exception { ByteArrayOutputStream bos = new ByteArrayOutputStream(); MockTransportOutputStream tos = new MockTransportOutputStream(bos); @@ -51,8 +44,7 @@ public abstract class AbstractSoap11MessageTestCase extends AbstractSoapMessageT soapMessage.setSoapAction(soapAction); soapMessage.writeTo(tos); String result = bos.toString("UTF-8"); - assertXMLEqual("
", - result); + assertXMLEqual("", result); String contentType = (String) tos.getHeaders().get("Content-Type"); assertTrue("Invalid Content-Type set", contentType.indexOf(SoapVersion.SOAP_11.getContentType()) != -1); String resultSoapAction = (String) tos.getHeaders().get("SOAPAction"); diff --git a/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12MessageTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12MessageTestCase.java index 80d8890d..6f242f6b 100644 --- a/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12MessageTestCase.java +++ b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12MessageTestCase.java @@ -33,25 +33,18 @@ public abstract class AbstractSoap12MessageTestCase extends AbstractSoapMessageT Assert.assertEquals("Invalid SOAP version", SoapVersion.SOAP_12, soapMessage.getVersion()); } - public void testWriteTo() throws Exception { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - soapMessage.writeTo(outputStream); - assertXMLEqual("
", - new String(outputStream.toByteArray(), "UTF-8")); - } - protected final Resource[] getSoapSchemas() { return new Resource[]{new ClassPathResource("xml.xsd", AbstractSoap12MessageTestCase.class), new ClassPathResource("soap12.xsd", AbstractSoap12MessageTestCase.class)}; } - public void testWriteToTransportResponse() throws Exception { + public void testWriteToTransportOutputStream() throws Exception { final ByteArrayOutputStream bos = new ByteArrayOutputStream(); MockTransportOutputStream tos = new MockTransportOutputStream(bos); soapMessage.writeTo(tos); String result = bos.toString("UTF-8"); - assertXMLEqual("
", result); + assertXMLEqual("", result); String contentType = (String) tos.getHeaders().get("Content-Type"); assertTrue("Invalid Content-Type set", contentType.indexOf(SoapVersion.SOAP_12.getContentType()) != -1); } diff --git a/pom.xml b/pom.xml index 118812fd..320f9a29 100644 --- a/pom.xml +++ b/pom.xml @@ -459,12 +459,12 @@ org.apache.ws.commons.axiom axiom-api - 1.2.1 + 1.2.3 org.apache.ws.commons.axiom axiom-impl - 1.2.1 + 1.2.3