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 de...@apache.org on 2006/11/08 14:33:46 UTC

svn commit: r472488 - in /webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2: Constants.java client/ServiceClient.java transport/http/HTTPWorker.java util/Utils.java

Author: deepal
Date: Wed Nov  8 05:33:45 2006
New Revision: 472488

URL: http://svn.apache.org/viewvc?view=rev&rev=472488
Log:
We not handling two channel case with HTTP , it was sending HTTP 200 in two channel case for the initiator but it should send HTTP 202

Modified:
    webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/Constants.java
    webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/client/ServiceClient.java
    webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java
    webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/Utils.java

Modified: webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/Constants.java?view=diff&rev=472488&r1=472487&r2=472488
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/Constants.java (original)
+++ webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/Constants.java Wed Nov  8 05:33:45 2006
@@ -190,6 +190,8 @@
     public static final char SERVICE_NAME_SPLIT_CHAR = ':';
     public static final String SERVICE_GROUP_ID = "ServiceGroupId";
     public static final String RESPONSE_WRITTEN = "CONTENT_WRITTEN";
+    //To have a floag if the replyTo is not annon one
+    public static final String DIFFERENT_EPR = "DIFFERENT_EPR";
 
     /**
      * Transport Info

Modified: webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/client/ServiceClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/client/ServiceClient.java?view=diff&rev=472488&r1=472487&r2=472488
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/client/ServiceClient.java (original)
+++ webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/client/ServiceClient.java Wed Nov  8 05:33:45 2006
@@ -738,6 +738,7 @@
      */
     public void setTargetEPR(EndpointReference targetEpr) {
         serviceContext.setTargetEPR(targetEpr);
+        options.setTo(targetEpr);
     }
 
 

Modified: webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java?view=diff&rev=472488&r1=472487&r2=472488
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java (original)
+++ webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java Wed Nov  8 05:33:45 2006
@@ -43,9 +43,9 @@
     }
 
     public void service(
-            final HttpRequest request, 
-            final HttpResponse response, 
-            final MessageContext msgContext) throws HttpException, IOException {    
+            final HttpRequest request,
+            final HttpResponse response,
+            final MessageContext msgContext) throws HttpException, IOException {
 
         ConfigurationContext configurationContext = msgContext.getConfigurationContext();
         final String servicePath = configurationContext.getServiceContextPath();
@@ -55,7 +55,7 @@
         String uri = request.getRequestLine().getUri();
         String method = request.getRequestLine().getMethod();
         String soapAction = HttpUtils.getSoapAction(request);
-        
+
         // Adjust version and content chunking based on the config
         boolean chunked = false;
         TransportOutDescription transportOut = msgContext.getTransportOut();
@@ -75,7 +75,7 @@
                 }
             }
         }
-        
+
         if (method.equals(HTTPConstants.HEADER_GET)) {
             if (uri.equals("/favicon.ico")) {
                 response.setStatusLine(new StatusLine(ver, 301, "Redirect"));
@@ -111,7 +111,7 @@
                         public void writeTo(final OutputStream outstream) throws IOException {
                             service.printWSDL2(outstream, ip, servicePath);
                         }
-                        
+
                     });
                     entity.setContentType("text/xml");
                     entity.setChunked(chunked);
@@ -130,7 +130,7 @@
                         public void writeTo(final OutputStream outstream) throws IOException {
                             service.printWSDL(outstream, ip, servicePath);
                         }
-                        
+
                     });
                     entity.setContentType("text/xml");
                     entity.setChunked(chunked);
@@ -148,7 +148,7 @@
                         public void writeTo(final OutputStream outstream) throws IOException {
                             service.printSchema(outstream);
                         }
-                        
+
                     });
                     entity.setContentType("text/xml");
                     entity.setChunked(chunked);
@@ -168,7 +168,7 @@
                     service.populateSchemaMappings();
                     //write out the correct schema
                     Map schemaTable = service.getSchemaMappingTable();
-                    final XmlSchema schema = (XmlSchema)schemaTable.get(schemaName);
+                    final XmlSchema schema = (XmlSchema) schemaTable.get(schemaName);
                     //schema found - write it to the stream
                     if (schema != null) {
                         EntityTemplate entity = new EntityTemplate(new ContentProducer() {
@@ -176,7 +176,7 @@
                             public void writeTo(final OutputStream outstream) throws IOException {
                                 schema.write(outstream);
                             }
-                            
+
                         });
                         entity.setContentType("text/xml");
                         entity.setChunked(chunked);
@@ -190,19 +190,19 @@
                 }
             }
 
-            OutputBuffer outbuffer = new OutputBuffer(); 
+            OutputBuffer outbuffer = new OutputBuffer();
             msgContext.setProperty(MessageContext.TRANSPORT_OUT, outbuffer);
             msgContext.setProperty(Constants.OUT_TRANSPORT_INFO, outbuffer);
 
             // deal with GET request
             boolean processed = HTTPTransportUtils.processHTTPGetRequest(
-                    msgContext, 
-                    outbuffer.getOutputStream(), 
-                    soapAction, 
+                    msgContext,
+                    outbuffer.getOutputStream(),
+                    soapAction,
                     uri,
                     configurationContext,
                     HTTPTransportReceiver.getGetRequestParameters(uri));
-            
+
             if (processed) {
                 outbuffer.setChunked(chunked);
                 response.setEntity(outbuffer);
@@ -214,11 +214,11 @@
                 entity.setChunked(chunked);
                 response.setEntity(entity);
             }
-            
+
         } else if (method.equals(HTTPConstants.HEADER_POST)) {
             // deal with POST request
 
-            OutputBuffer outbuffer = new OutputBuffer(); 
+            OutputBuffer outbuffer = new OutputBuffer();
             msgContext.setProperty(MessageContext.TRANSPORT_OUT, outbuffer);
             msgContext.setProperty(Constants.OUT_TRANSPORT_INFO, outbuffer);
 
@@ -228,27 +228,35 @@
                 contenttype = inentity.getContentType().getValue();
             }
             HTTPTransportUtils.processHTTPPostRequest(
-                    msgContext, 
-                    inentity.getContent(), 
+                    msgContext,
+                    inentity.getContent(),
                     outbuffer.getOutputStream(),
-                    contenttype, 
-                    soapAction, 
+                    contenttype,
+                    soapAction,
                     uri);
-            
+
             outbuffer.setChunked(chunked);
             response.setEntity(outbuffer);
-            
+
         } else {
             throw new MethodNotSupportedException(method + " method not supported");
         }
-        
+
         // Finalize response
         OperationContext operationContext = msgContext.getOperationContext();
         Object contextWritten = null;
+        Object isTwoChannel = null;
         if (operationContext != null) {
             contextWritten = operationContext.getProperty(Constants.RESPONSE_WRITTEN);
+            isTwoChannel = operationContext.getProperty(Constants.DIFFERENT_EPR);
         }
+
+
         if ((contextWritten != null) && Constants.VALUE_TRUE.equals(contextWritten)) {
+            if ((isTwoChannel != null) && Constants.VALUE_TRUE.equals(isTwoChannel)) {
+                response.setStatusLine(new StatusLine(ver, 202, "OK"));
+                return;
+            }
             response.setStatusLine(new StatusLine(ver, 200, "OK"));
         } else {
             response.setStatusLine(new StatusLine(ver, 202, "OK"));

Modified: webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/Utils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/Utils.java?view=diff&rev=472488&r1=472487&r2=472488
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/Utils.java (original)
+++ webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/Utils.java Wed Nov  8 05:33:45 2006
@@ -58,7 +58,7 @@
         newmsgCtx.setSessionContext(inMessageContext.getSessionContext());
         newmsgCtx.setTransportIn(inMessageContext.getTransportIn());
         newmsgCtx.setTransportOut(inMessageContext.getTransportOut());
-        
+
         Options oldOptions =
                 inMessageContext.getOptions();
 
@@ -84,18 +84,17 @@
                 replyToEPR.addReferenceParameter(new QName(Constants.AXIS2_NAMESPACE_URI,
                         Constants.SERVICE_GROUP_ID, Constants.AXIS2_NAMESPACE_PREFIX), serviceGroupContextId);
             }
+        } else {
+            newmsgCtx.setReplyTo(new EndpointReference(AddressingConstants.Final.WSA_NONE_URI));
         }
-        else {
-            newmsgCtx.setReplyTo(new EndpointReference(AddressingConstants.Final.WSA_NONE_URI));            
-        }
-        
+
         AxisOperation ao = inMessageContext.getAxisOperation();
         if (ao.getOutputAction() != null) {
             newmsgCtx.setWSAAction(ao.getOutputAction());
         } else {
             newmsgCtx.setWSAAction(oldOptions.getAction());
         }
-        
+
         newmsgCtx.setAxisMessage(ao.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE));
         newmsgCtx.setOperationContext(inMessageContext.getOperationContext());
         newmsgCtx.setServiceContext(inMessageContext.getServiceContext());
@@ -133,6 +132,8 @@
                         }
                         newmsgCtx.setTransportOut(transportOut);
                     }
+                    inMessageContext.getOperationContext().setProperty(
+                            Constants.DIFFERENT_EPR, Constants.VALUE_TRUE);
                 }
             }
         } catch (URISyntaxException e) {



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org