You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ia...@apache.org on 2004/03/05 06:23:25 UTC
cvs commit: ws-axis/java/src/org/apache/axis/encoding SerializationContextImpl.java
ias 2004/03/04 21:23:25
Modified: java/src/org/apache/axis/encoding
SerializationContextImpl.java
Log:
Changed startElement to get character encoding from message context first.
Revision Changes Path
1.105 +28 -16 ws-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java
Index: SerializationContextImpl.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -r1.104 -r1.105
--- SerializationContextImpl.java 25 Feb 2004 14:02:35 -0000 1.104
+++ SerializationContextImpl.java 5 Mar 2004 05:23:25 -0000 1.105
@@ -16,6 +16,22 @@
package org.apache.axis.encoding;
+import java.io.IOException;
+import java.io.Writer;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Stack;
+
+import javax.xml.namespace.QName;
+import javax.xml.rpc.JAXRPCException;
+import javax.xml.rpc.holders.QNameHolder;
+import javax.xml.soap.SOAPMessage;
+
import org.apache.axis.AxisEngine;
import org.apache.axis.Constants;
import org.apache.axis.Message;
@@ -23,8 +39,8 @@
import org.apache.axis.attachments.Attachments;
import org.apache.axis.client.Call;
import org.apache.axis.components.logger.LogFactory;
-import org.apache.axis.description.TypeDesc;
import org.apache.axis.description.OperationDesc;
+import org.apache.axis.description.TypeDesc;
import org.apache.axis.encoding.ser.BaseSerializerFactory;
import org.apache.axis.enum.Use;
import org.apache.axis.handlers.soap.SOAPService;
@@ -51,20 +67,6 @@
import org.xml.sax.Attributes;
import org.xml.sax.helpers.AttributesImpl;
-import javax.xml.namespace.QName;
-import javax.xml.rpc.JAXRPCException;
-import javax.xml.rpc.holders.QNameHolder;
-import java.io.IOException;
-import java.io.Writer;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Stack;
-
/** Manage a serialization, including keeping track of namespace mappings
* and element stacks.
*
@@ -857,7 +859,17 @@
if (startOfDocument && sendXMLDecl) {
writer.write("<?xml version=\"1.0\" encoding=\"");
- writer.write(XMLUtils.getEncoding());
+ // The origional logic is very simple
+ // writer.write(XMLUtils.getEncoding());
+ // The following logic is devised to utilize CHARACTER_SET_ENCODING property from SAAJ 1.2.
+ String encoding = null;
+ if (msgContext != null) {
+ encoding = (String) msgContext.getProperty(SOAPMessage.CHARACTER_SET_ENCODING);
+ }
+ if (encoding == null) {
+ encoding = XMLUtils.getEncoding();
+ }
+ writer.write(encoding);
writer.write("\"?>\n");
startOfDocument = false;
}