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 du...@apache.org on 2001/03/13 07:46:20 UTC

cvs commit: xml-axis/java/src/org/apache/axis/message RPCBody.java SOAPHeader.java

dug         01/03/12 22:46:20

  Modified:    java/src/org/apache/axis Message.java
               java/src/org/apache/axis/client HTTPCall.java
               java/src/org/apache/axis/handlers RPCDispatchHandler.java
                        SimpleAuthenticationHandler.java
                        SimpleAuthorizationHandler.java
               java/src/org/apache/axis/message RPCBody.java
                        SOAPHeader.java
  Log:
  Misc updates to help us interop with MS Soap
  
  Revision  Changes    Path
  1.13      +20 -18    xml-axis/java/src/org/apache/axis/Message.java
  
  Index: Message.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Message.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- Message.java	2001/03/03 01:07:04	1.12
  +++ Message.java	2001/03/13 06:46:18	1.13
  @@ -224,32 +224,34 @@
       Debug.Print( 2, "Enter: Message::getAsDocument" );
       if ( currentForm.equals("Document") ) return( (Document) currentMessage );
   
  -    SAXBuilder parser = new SAXBuilder();
  -    Reader     reader = null ;
  +    SAXBuilder  parser = new SAXBuilder();
  +    InputStream inp     = null ;
   
       try {
         if ( currentForm.equals("InputStream") )
  -        reader = new InputStreamReader( (InputStream) currentMessage );
  +        inp = (InputStream) currentMessage ;
         else if ( currentForm.equals("ServletRequest") ) {
           HttpServletRequest req = (HttpServletRequest)currentMessage;
  +        inp = req.getInputStream();
           
  -        int contentLength = req.getContentLength();
  -        Reader requestReader = req.getReader ();
  -        char[] payload       = new char[contentLength];
  -        int    offset        = 0;
  -
  -        while (offset < contentLength) {
  -            offset += requestReader.read (payload, offset, contentLength - offset);
  -        }
  -        
  -        reader = new CharArrayReader(payload);
  +        // int contentLength = req.getContentLength();
  +        // Reader requestReader = req.getReader ();
  +        // char[] payload       = new char[contentLength];
  +        // int    offset        = 0;
  +        // while (offset < contentLength) {
  +           // offset+=requestReader.read(payload,offset,contentLength-offset);
  +        // }
  +        // reader = new CharArrayReader(payload);
  +      }
  +      else if ( currentForm.equals("String") )  {
  +        Reader reader = new StringReader( (String) currentMessage );
  +        setCurrentMessage( parser.build( reader ), "Document" );
  +        Debug.Print( 2, "Exit: Message::getAsDocument" );
  +        return( (Document) currentMessage );
         }
  -      else if ( currentForm.equals("String") ) 
  -        reader = new StringReader( (String) currentMessage );
         else if ( currentForm.equals("Bytes") )  {
           ByteArrayInputStream  bais ;
  -        bais = new ByteArrayInputStream((byte[])currentMessage );
  -        reader = new InputStreamReader( bais );
  +        inp = new ByteArrayInputStream((byte[])currentMessage );
         }
         else if ( currentForm.equals("AxisFault") ) {
           AxisFault     fault = (AxisFault) currentMessage ;
  @@ -274,7 +276,7 @@
           return( null );
         }
     
  -      setCurrentMessage( parser.build( reader ), "Document" );
  +      setCurrentMessage( parser.build( inp ), "Document" );
         Debug.Print( 2, "Exit: Message::getAsDocument" );
         return( (Document) currentMessage );
       }
  
  
  
  1.14      +5 -3      xml-axis/java/src/org/apache/axis/client/HTTPCall.java
  
  Index: HTTPCall.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/HTTPCall.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- HTTPCall.java	2001/03/02 20:03:07	1.13
  +++ HTTPCall.java	2001/03/13 06:46:18	1.14
  @@ -143,7 +143,8 @@
       MessageContext       msgContext = new MessageContext( reqMsg );
       Vector               resBodies = null ;
       Vector               resArgs = null ;
  -    RPCArg               arg ;
  +    RPCArg               arg  = null ;
  +    Object               result = null ;
   
       hMsg.setUserID( userID );
       hMsg.setPassword( passwd );
  @@ -168,9 +169,10 @@
       Document doc = (Document) resMsg.getAs("Document");
       body = new RPCBody( doc.getRootElement() );
       resArgs = body.getArgs();
  -    arg = (RPCArg) resArgs.get(0);
  +    if ( args != null && resArgs.size() > 0 )
  +      result = (String) ((RPCArg) resArgs.get(0)).getValue() ;
       Debug.Print( 1, "Exit: HTTPCall.invoke" );
  -    return( (String) arg.getValue() );
  +    return( result );
     }
   
   }
  
  
  
  1.20      +18 -11    xml-axis/java/src/org/apache/axis/handlers/RPCDispatchHandler.java
  
  Index: RPCDispatchHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/RPCDispatchHandler.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- RPCDispatchHandler.java	2001/03/09 19:25:26	1.19
  +++ RPCDispatchHandler.java	2001/03/13 06:46:19	1.20
  @@ -112,13 +112,18 @@
                                  null, null );  // Should they??
     
           Debug.Print( 2, "There are " + args.size() + " arg(s)" );
  -        Class[]  argClasses = new Class[ args.size() ];
  -        Object[] argValues  = new Object[ args.size()];
  -        for ( i = 0 ; i < args.size() ; i++ ) {
  -          argClasses[i] = cl.loadClass("java.lang.String") ;
  -          argValues[i]  = ((RPCArg)args.get(i)).getValue() ; // only String 4now
  -          Debug.Print( 2, "  class: " + argClasses[i] );
  -          Debug.Print( 2, "  value: " + argValues[i].toString() );
  +        Class[]  argClasses = null ;
  +        Object[] argValues  =  null ;
  +
  +        if ( args != null && args.size() > 0 ) {
  +          argClasses = new Class[ args.size() ];
  +          argValues = new Object[ args.size()];
  +          for ( i = 0 ; i < args.size() ; i++ ) {
  +            argClasses[i] = cl.loadClass("java.lang.String") ;
  +            argValues[i]  = ((RPCArg)args.get(i)).getValue() ; // String 4now
  +            Debug.Print( 2, "  class: " + argClasses[i] );
  +            Debug.Print( 2, "  value: " + argValues[i].toString() );
  +          }
           }
     
           Method method = cls.getMethod( mName, argClasses );
  @@ -130,10 +135,12 @@
           resBody.setMethodName( mName + "Response" );
           resBody.setPrefix( body.getPrefix() );
           resBody.setNamespaceURI( body.getNamespaceURI() );
  -        RPCArg  arg = new RPCArg();
  -        arg.setName( "return" );
  -        arg.setValue( objRes.toString() );
  -        resBody.addArg( arg );
  +        if ( objRes != null ) {
  +          RPCArg  arg = new RPCArg();
  +          arg.setName( "return" );
  +          arg.setValue( objRes.toString() );
  +          resBody.addArg( arg );
  +        }
           resEnv.addBody( resBody.getAsSOAPBody() );
         }
   
  
  
  
  1.7       +1 -1      xml-axis/java/src/org/apache/axis/handlers/SimpleAuthenticationHandler.java
  
  Index: SimpleAuthenticationHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/SimpleAuthenticationHandler.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SimpleAuthenticationHandler.java	2001/02/17 16:44:02	1.6
  +++ SimpleAuthenticationHandler.java	2001/03/13 06:46:19	1.7
  @@ -103,7 +103,7 @@
           if ( passwd == null && p != null ) continue ;
           if ( passwd != null && !passwd.equals(p) ) continue ;
   
  -        Debug.Print( 1, "User '" + userID + "' authenicated to server" );
  +        Debug.Print( 1, "User '" + userID + "' authenticated to server" );
           done = true ;
           break ;
         }
  
  
  
  1.8       +5 -5      xml-axis/java/src/org/apache/axis/handlers/SimpleAuthorizationHandler.java
  
  Index: SimpleAuthorizationHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/SimpleAuthorizationHandler.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SimpleAuthorizationHandler.java	2001/02/17 16:44:02	1.7
  +++ SimpleAuthorizationHandler.java	2001/03/13 06:46:19	1.8
  @@ -78,10 +78,10 @@
       Debug.Print( 1, "Enter: SimpleAuthenticationHandler::invoke" );
       try {
         String  userID = (String) msgContext.getProperty( MessageContext.USERID );
  -      String  action = (String) msgContext.getProperty( HTTPConstants.MC_HTTP_SOAPACTION );
  +      String  action = msgContext.getTargetService();
   
  -      Debug.Print( 1, "User: " + userID );
  -      Debug.Print( 1, "Action: " + action );
  +      Debug.Print( 1, "User: '" + userID + "'" );
  +      Debug.Print( 1, "Action: '" + action + "'" );
   
         FileReader        fr   = new FileReader( "perms.lst" );
         LineNumberReader  lnr  = new LineNumberReader( fr );
  @@ -100,12 +100,12 @@
   
           if ( st.hasMoreTokens() ) u = st.nextToken();
           if ( st.hasMoreTokens() ) a = st.nextToken();
  -        Debug.Print( 2, "From file: " + u + ":" + a );
  +        Debug.Print( 2, "From file: '" + u + "':'" + a + "'" );
   
           if ( !userID.equals(u) ) continue ;
           if ( !action.equals(a) ) continue ;
   
  -        Debug.Print( 1, "User '" + userID + "' authorized to: " +a );
  +        Debug.Print( 1, "User '" + userID + "' authorized to: " + a );
           done = true ;
           break ;
         }
  
  
  
  1.11      +7 -1      xml-axis/java/src/org/apache/axis/message/RPCBody.java
  
  Index: RPCBody.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/RPCBody.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- RPCBody.java	2001/03/02 20:03:58	1.10
  +++ RPCBody.java	2001/03/13 06:46:19	1.11
  @@ -92,7 +92,13 @@
       setMethodName( methodName );
       if ( args != null ) {
         for ( int i = 0 ; i < args.length ; i++ ) {
  -        RPCArg  arg = new RPCArg( "arg" + i, (String) args[i] );
  +        Object  obj = args[i] ;
  +        RPCArg  arg = null ;
  +
  +        if ( !(obj instanceof RPCArg) )
  +          arg = new RPCArg( "arg" + i, (String) obj );
  +        else
  +          arg = (RPCArg) obj ;
           addArg( arg );
         }
       }
  
  
  
  1.11      +15 -5     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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SOAPHeader.java	2001/03/02 20:04:08	1.10
  +++ SOAPHeader.java	2001/03/13 06:46:19	1.11
  @@ -127,11 +127,21 @@
     }
   
     public Element getAsXML() {
  -    Element  root = new Element( name, prefix, namespaceURI );
  -    if ( mustUnderstand )
  -      root.addAttribute( Constants.ATTR_MUST_UNDERSTAND, "1" );
  -    if ( actor != null )
  -      root.addAttribute( Constants.ATTR_ACTOR, actor );
  +    Element    root = new Element( name, prefix, namespaceURI );
  +    Namespace  ns   = null ;
  +    Attribute  attr = null ;
  +    if ( mustUnderstand ) {
  +      ns = Namespace.getNamespace( Constants.NSPREFIX_SOAP_ENV, 
  +                                   Constants.URI_SOAP_ENV );
  +      attr = new Attribute(Constants.ATTR_MUST_UNDERSTAND, "1", ns );
  +      root.addAttribute( attr );
  +    }
  +    if ( actor != null ) {
  +      ns = Namespace.getNamespace( Constants.NSPREFIX_SOAP_ENV, 
  +                                   Constants.URI_SOAP_ENV );
  +      attr = new Attribute( Constants.ATTR_ACTOR, actor, ns );
  +      root.addAttribute( attr );
  +    }
       for ( int i = 0 ; data != null && i < data.size() ; i++ ) {
         Object o = data.get(i);
         if ( o instanceof String )