tomj        02/04/15 12:37:23

  Modified:    java/src/org/apache/axis/message RPCHandler.java
               java/src/org/apache/axis/handlers JWSProcessor.java
  Log:
  Fix problems with JWS type mapping (and the lack thereof).
  
  - The JWS service did not call setEngine(), which associates the engine with
    the service, and additionally give the service its global type mappings
  
  - In RPCHandler, add a bit of code which checks to see if we know the
     element type of an array before we go an use the xsi:type.  This allows
    the correct processing of e.g. Integer[] arrays which have elements of type
    int.
  
  Revision  Changes    Path
  1.34      +7 -3      xml-axis/java/src/org/apache/axis/message/RPCHandler.java
  
  Index: RPCHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/RPCHandler.java,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- RPCHandler.java   15 Apr 2002 02:35:57 -0000      1.33
  +++ RPCHandler.java   15 Apr 2002 19:37:22 -0000      1.34
  @@ -152,9 +152,13 @@
                                                        ref.getName(),
                                                        ref.getAttributes());
           } else {
  -            type = context.getTypeFromAttributes(namespace,
  -                                                   localName,
  -                                                   attributes);
  +            // Get the element type if we have it, otherwise check xsi:type
  +            type = curEl.getType();
  +            if (type == null) {
  +                type = context.getTypeFromAttributes(namespace,
  +                                                     localName,
  +                                                     attributes);
  +            }
           }
   
           if (log.isDebugEnabled()) {
  
  
  
  1.44      +3 -0      xml-axis/java/src/org/apache/axis/handlers/JWSProcessor.java
  
  Index: JWSProcessor.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/JWSProcessor.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- JWSProcessor.java 11 Apr 2002 16:07:35 -0000      1.43
  +++ JWSProcessor.java 15 Apr 2002 19:37:23 -0000      1.44
  @@ -278,6 +278,9 @@
               sd.setImplClass(cl.loadClass(clsName));
               sd.setTypeMapping(msgContext.getTypeMapping());
   
  +            // Set engine, which hooks up type mappings.
  +            rpc.setEngine(msgContext.getAxisEngine());
  +            
               rpc.init();   // ??
               if (doWsdl)
                   rpc.generateWSDL(msgContext);
  
  
  


Reply via email to