axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen Daniels <gdani...@macromedia.com>
Subject RE: cvs commit: xml-axis/java/src/org/apache/axis/transport/local LocalSender.java
Date Wed, 11 Jul 2001 17:29:52 GMT

The astute among you probably also noticed that we're getting ready to
support SOAP 1.2, which I neglected to mention in my checkin comments....

--G

> -----Original Message-----
> From: gdaniels@apache.org [mailto:gdaniels@apache.org]
> Sent: Wednesday, July 11, 2001 12:10 PM
> To: xml-axis-cvs@apache.org
> Subject: cvs commit: xml-axis/java/src/org/apache/axis/transport/local
> LocalSender.java
> 
> 
> gdaniels    01/07/11 09:10:02
> 
>   Modified:    java/src/org/apache/axis Constants.java
>                java/src/org/apache/axis/handlers/soap SOAPService.java
>                java/src/org/apache/axis/message SOAPHeader.java
>                java/src/org/apache/axis/transport/local 
> LocalSender.java
>   Log:
>   * Implement mustUnderstand checking
>   
>   * Change getMustUnderstand -> isMustUnderstand in SOAPHeader
>   
>   * Don't propagate AxisFault thrown by the server up to the 
> client when
>     using the LocalSender.  Instead, turn the fault into a Message and
>     respond with that.
>   
>   Revision  Changes    Path
>   1.25      +24 -0     
> xml-axis/java/src/org/apache/axis/Constants.java
>   
>   Index: Constants.java
>   ===================================================================
>   RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/Constants.java,v
>   retrieving revision 1.24
>   retrieving revision 1.25
>   diff -u -r1.24 -r1.25
>   --- Constants.java	2001/06/29 13:14:31	1.24
>   +++ Constants.java	2001/07/11 16:09:41	1.25
>   @@ -55,6 +55,8 @@
>    
>    package org.apache.axis;
>    
>   +import org.apache.axis.utils.QFault;
>   +
>    public class Constants {
>      // Some common Constants that should be used in local 
> handler options
>      // (Not all implementations will have these concepts - 
> for example
>   @@ -71,12 +73,31 @@
>    
>    
>      public static String AXIS_NS = "http://xml.apache.org/axis/";
>   +  
>   +  //
>   +  // SOAP 1.1 constants
>   +  //
>      public static String URI_SOAP_ENV =
>                                   
> "http://schemas.xmlsoap.org/soap/envelope/" ;
>      public static String URI_SOAP_ENC =
>                                   
> "http://schemas.xmlsoap.org/soap/encoding/" ;
>      public static String URI_NEXT_ACTOR = 
>                                   
> "http://schemas.xmlsoap.org/soap/actor/next" ;
>   +  
>   +  //
>   +  // SOAP 1.2 constants
>   +  //
>   +  public static String URI_SOAP12_ENV =
>   +                        "http://www.w3.org/2001/06/soap-envelope";
>   +  public static String URI_SOAP12_ENC =
>   +                        "http://www.w3.org/2001/06/soap-encoding";
>   +  public static String URI_SOAP12_NEXT_ACTOR =
>   +                        
> "http://www.w3.org/2001/06/soap-envelope/actor/next";
>   +  public static String URI_SOAP12_FAULT_NS =
>   +                        "http://www.w3.org/2001/06/soap-faults";
>   +  public static String URI_SOAP12_UPGRADE_NS =
>   +                        "http://www.w3.org/2001/06/soap-upgrade";
>   +  
>    
>      public static String NS_URI_XMLNS = 
>                                   "http://www.w3.org/2000/xmlns/";
>   @@ -130,6 +151,9 @@
>      // Fault Codes
>      
> //////////////////////////////////////////////////////////////
> ////////////
>      public static String FAULT_SERVER_GENERAL = 
> "Server.generalException";
>   +  
>   +  public static final QFault FAULT_MUSTUNDERSTAND =
>   +                            new QFault(URI_SOAP_ENV, 
> "MustUnderstand");
>    
>    
>      // Misc Strings
>   
>   
>   
>   1.14      +22 -0     
> xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java
>   
>   Index: SOAPService.java
>   ===================================================================
>   RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/handlers/soap/SOAP
> Service.java,v
>   retrieving revision 1.13
>   retrieving revision 1.14
>   diff -u -r1.13 -r1.14
>   --- SOAPService.java	2001/07/08 14:18:38	1.13
>   +++ SOAPService.java	2001/07/11 16:09:47	1.14
>   @@ -58,6 +58,7 @@
>    import java.util.Enumeration;
>    import org.apache.axis.*;
>    import org.apache.axis.encoding.*;
>   +import org.apache.axis.message.*;
>    import org.apache.axis.utils.Debug;
>    import org.apache.axis.utils.QName;
>    import org.apache.axis.transport.http.HTTPConstants;
>   @@ -170,6 +171,27 @@
>    
>            // Do SOAP semantics here
>            Debug.Print( 2, "Doing SOAP semantic checks...");
>   +        
>   +        // 1. Check mustUnderstands
>   +        SOAPEnvelope env = 
> msgContext.getRequestMessage().getAsSOAPEnvelope();
>   +        Vector headers = env.getHeaders();
>   +        Vector misunderstoodHeaders = null;
>   +        for (int i = 0; i < headers.size(); i++) {
>   +            SOAPHeader header = (SOAPHeader)headers.elementAt(i);
>   +            if (header.isMustUnderstand() && 
> !header.isProcessed()) {
>   +                if (misunderstoodHeaders == null)
>   +                    misunderstoodHeaders = new Vector();
>   +                misunderstoodHeaders.addElement(header);
>   +            }
>   +        }
>   +        
>   +        if (misunderstoodHeaders != null) {
>   +            // !!! If SOAP 1.2, insert misunderstood fault 
> header here
>   +            
>   +            throw new AxisFault(Constants.FAULT_MUSTUNDERSTAND,
>   +                        "Didn't understand MustUnderstand 
> header(s)!",
>   +                        null, null);
>   +        }
>    
>            h = getPivotHandler();
>            if ( h != null ) {
>   
>   
>   
>   1.18      +1 -1      
> xml-axis/java/src/org/apache/axis/message/SOAPHeader.java
>   
>   Index: SOAPHeader.java
>   ===================================================================
>   RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPHeader.java,v
>   retrieving revision 1.17
>   retrieving revision 1.18
>   diff -u -r1.17 -r1.18
>   --- SOAPHeader.java	2001/05/30 20:00:07	1.17
>   +++ SOAPHeader.java	2001/07/11 16:09:53	1.18
>   @@ -109,7 +109,7 @@
>            processed = false;
>        }
>        
>   -    public boolean getMustUnderstand() { return( 
> mustUnderstand ); }
>   +    public boolean isMustUnderstand() { return( mustUnderstand ); }
>        public void setMustUnderstand(boolean b) { 
>            mustUnderstand = b ;
>        }
>   
>   
>   
>   1.5       +6 -1      
> xml-axis/java/src/org/apache/axis/transport/local/LocalSender.java
>   
>   Index: LocalSender.java
>   ===================================================================
>   RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/transport/local/Lo
> calSender.java,v
>   retrieving revision 1.4
>   retrieving revision 1.5
>   diff -u -r1.4 -r1.5
>   --- LocalSender.java	2001/07/09 21:31:57	1.4
>   +++ LocalSender.java	2001/07/11 16:09:58	1.5
>   @@ -130,7 +130,12 @@
>        }
>    
>        // invoke the request
>   -    targetServer.invoke(serverContext);
>   +    try {
>   +        targetServer.invoke(serverContext);
>   +    } catch (AxisFault fault) {
>   +        Message faultMessage = new Message(fault);
>   +        serverContext.setResponseMessage(faultMessage);
>   +    }
>    
>        // copy back the response, and force its format to 
> String in order to
>        // exercise the deserializers.
>   
>   
>   
> 

Mime
View raw message