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);