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 di...@apache.org on 2005/09/05 08:03:12 UTC

svn commit: r278677 - in /webservices/axis/trunk/java/src/org/apache/axis: Message.java deployment/wsdd/WSDDConstants.java transport/http/AxisServlet.java

Author: dims
Date: Sun Sep  4 23:03:07 2005
New Revision: 278677

URL: http://svn.apache.org/viewcvs?rev=278677&view=rev
Log:
Extract action from content-Type (SOAP1.2)


Modified:
    webservices/axis/trunk/java/src/org/apache/axis/Message.java
    webservices/axis/trunk/java/src/org/apache/axis/deployment/wsdd/WSDDConstants.java
    webservices/axis/trunk/java/src/org/apache/axis/transport/http/AxisServlet.java

Modified: webservices/axis/trunk/java/src/org/apache/axis/Message.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/src/org/apache/axis/Message.java?rev=278677&r1=278676&r2=278677&view=diff
==============================================================================
--- webservices/axis/trunk/java/src/org/apache/axis/Message.java (original)
+++ webservices/axis/trunk/java/src/org/apache/axis/Message.java Sun Sep  4 23:03:07 2005
@@ -320,6 +320,10 @@
             int delimiterIndex = contentType.lastIndexOf("charset");
             if (delimiterIndex > 0) {
                 String charsetPart = contentType.substring(delimiterIndex);
+                int delimiterIndex2 = charsetPart.indexOf(';');
+                if(delimiterIndex2 != -1){
+                    charsetPart = charsetPart.substring(0, delimiterIndex2);
+                }
                 int charsetIndex = charsetPart.indexOf('=');
                 String charset = charsetPart.substring(charsetIndex + 1).trim();
                 if ((charset.startsWith("\"") || charset.startsWith("\'"))) {

Modified: webservices/axis/trunk/java/src/org/apache/axis/deployment/wsdd/WSDDConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/src/org/apache/axis/deployment/wsdd/WSDDConstants.java?rev=278677&r1=278676&r2=278677&view=diff
==============================================================================
--- webservices/axis/trunk/java/src/org/apache/axis/deployment/wsdd/WSDDConstants.java (original)
+++ webservices/axis/trunk/java/src/org/apache/axis/deployment/wsdd/WSDDConstants.java Sun Sep  4 23:03:07 2005
@@ -163,6 +163,7 @@
     public static final String ATTR_CLASSNAME = "classname";
     public static final String ATTR_CLASS = "class";
     public static final String ATTR_SOAPACTION = "soapAction";
+    public static final String ATTR_SOAP12ACTION = "action";
     public static final String ATTR_MEP = "mep";
     public static final String ATTR_INNER_TYPE = "innerType";
     public static final String ATTR_INNER_NAME = "innerName";

Modified: webservices/axis/trunk/java/src/org/apache/axis/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/src/org/apache/axis/transport/http/AxisServlet.java?rev=278677&r1=278676&r2=278677&view=diff
==============================================================================
--- webservices/axis/trunk/java/src/org/apache/axis/transport/http/AxisServlet.java (original)
+++ webservices/axis/trunk/java/src/org/apache/axis/transport/http/AxisServlet.java Sun Sep  4 23:03:07 2005
@@ -991,6 +991,15 @@
      */
     private String getSoapAction(HttpServletRequest req) throws AxisFault {
         String soapAction = req.getHeader(HTTPConstants.HEADER_SOAP_ACTION);
+        if (soapAction == null) {
+            String contentType = req.getHeader(HTTPConstants.HEADER_CONTENT_TYPE);
+            if(contentType != null) {
+                int index = contentType.indexOf("action");
+                if(index != -1){
+                    soapAction = contentType.substring(index + 7);
+                }
+            }
+        }
 
         if (isDebug) {
             log.debug("HEADER_SOAP_ACTION:" + soapAction);