You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2007/03/18 03:17:50 UTC
svn commit: r519521 - in
/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj:
SOAPMessageImpl.java SOAPPartImpl.java
Author: dims
Date: Sat Mar 17 19:17:49 2007
New Revision: 519521
URL: http://svn.apache.org/viewvc?view=rev&rev=519521
Log:
revert previous change to SOAPPart. strip any trailing information in charset
Modified:
webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java?view=diff&rev=519521&r1=519520&r2=519521
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java Sat Mar 17 19:17:49 2007
@@ -507,6 +507,10 @@
if ((charset.endsWith("\"") || charset.endsWith("\'"))) {
charset = charset.substring(0, charset.length() - 1);
}
+ int index = charset.indexOf(';');
+ if(index!=-1){
+ charset = charset.substring(0, index);
+ }
setProperty(SOAPMessage.CHARACTER_SET_ENCODING, charset);
}
}
Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java?view=diff&rev=519521&r1=519520&r2=519521
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java Sat Mar 17 19:17:49 2007
@@ -47,6 +47,7 @@
import org.apache.axiom.om.impl.MTOMConstants;
import org.apache.axiom.om.impl.dom.factory.OMDOMFactory;
import org.apache.axiom.om.impl.builder.StAXBuilder;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAPFactory;
@@ -377,22 +378,38 @@
return mimeHeaders.getNonMatchingHeaders(names);
}
- /**
- * Sets the content of the <CODE>SOAPEnvelope</CODE> object
- * with the data from the given <CODE>Source</CODE> object.
- *
- * @param source javax.xml.transform.Source</CODE> object with the data to
- * be set
- * @throws SOAPException if there is a problem in
- * setting the source
- * @see #getContent() getContent()
- */
public void setContent(Source source) throws SOAPException {
this.source = source;
try {
- Result result = new DOMResult(this.envelope.element);
- Transformer xformer = TransformerFactory.newInstance().newTransformer();
- xformer.transform(source, result);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ InputStream is;
+ if (source instanceof StreamSource) {
+ is = ((StreamSource) source).getInputStream();
+ } else {
+ Result result = new StreamResult(baos);
+ Transformer xformer = TransformerFactory.newInstance().newTransformer();
+ xformer.transform(source, result);
+ is = new ByteArrayInputStream(baos.toByteArray());
+ }
+
+ XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
+
+ StAXSOAPModelBuilder builder1 = null;
+ if(this.envelope.element.getOMFactory() instanceof SOAP11Factory){
+ builder1 = new StAXSOAPModelBuilder(reader,
+ (SOAP11Factory)this.envelope.element.getOMFactory(),null);
+ }else if(this.envelope.element.getOMFactory() instanceof SOAP12Factory){
+ builder1 = new StAXSOAPModelBuilder(reader,
+ (SOAP12Factory)this.envelope.element.getOMFactory(),null);
+ }
+
+ org.apache.axiom.soap.SOAPEnvelope soapEnvelope = builder1.getSOAPEnvelope();
+ envelope = new SOAPEnvelopeImpl(
+ (org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)soapEnvelope);
+ envelope.element.build();
+ this.document = envelope.getOwnerDocument();
} catch (TransformerFactoryConfigurationError e) {
log.error(e);
throw new SOAPException(e);
@@ -401,7 +418,7 @@
throw new SOAPException(e);
}
}
-
+
/**
* Returns the content of the SOAPEnvelope as a JAXP <CODE>
* Source</CODE> object.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org