rineholt 02/03/13 20:20:52 Modified: java/samples/attachments EchoAttachment.java java/src/org/apache/axis/client Call.java java/src/org/apache/axis/encoding DeserializerImpl.java java/src/org/apache/axis/encoding/ser JAFDataHandlerDeserializerFactory.java Log: Fix attachment sample to print out error if fault occurs. AxisFautl.dump is now silient Fix Call so it recognizes the SOAPBody part in WSDL with attachments. Fix to invoke serializer for attachments in arrays. Revision Changes Path 1.9 +3 -2 xml-axis/java/samples/attachments/EchoAttachment.java Index: EchoAttachment.java =================================================================== RCS file: /home/cvs/xml-axis/java/samples/attachments/EchoAttachment.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- EchoAttachment.java 27 Feb 2002 02:57:22 -0000 1.8 +++ EchoAttachment.java 14 Mar 2002 04:20:52 -0000 1.9 @@ -122,6 +122,7 @@ qnameAttachment, JAFDataHandlerSerializerFactory.class, JAFDataHandlerDeserializerFactory.class); + call.addParameter( "source", qnameAttachment, ParameterMode.PARAM_MODE_IN ); //Add the file. @@ -329,8 +330,8 @@ if ( e instanceof AxisFault ) { ((AxisFault) e).dump(); } - else - e.printStackTrace(); + System.err.println(e); + e.printStackTrace(); } System.exit(18); } 1.94 +17 -0 xml-axis/java/src/org/apache/axis/client/Call.java Index: Call.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Call.java,v retrieving revision 1.93 retrieving revision 1.94 diff -u -r1.93 -r1.94 --- Call.java 13 Mar 2002 19:50:58 -0000 1.93 +++ Call.java 14 Mar 2002 04:20:52 -0000 1.94 @@ -881,6 +881,23 @@ list = bIn.getExtensibilityElements(); for ( int i = 0 ; list != null && i < list.size() ; i++ ) { Object obj = list.get(i); + if( obj instanceof javax.wsdl.extensions.mime.MIMEMultipartRelated){ + javax.wsdl.extensions.mime.MIMEMultipartRelated mpr= + (javax.wsdl.extensions.mime.MIMEMultipartRelated) obj; + Object part= null; + List l= mpr.getMIMEParts(); + for(int j=0; l!= null && j< l.size() && part== null; j++){ + javax.wsdl.extensions.mime.MIMEPart mp + = (javax.wsdl.extensions.mime.MIMEPart)l.get(j); + List ll= mp.getExtensibilityElements(); + for(int k=0; ll!= null && k< ll.size() && part== null; k++){ + part= ll.get(k); + if ( !(part instanceof SOAPBody)) part = null; + } + } + if(null != part) obj= part; + } + if ( obj instanceof SOAPBody ) { SOAPBody sBody = (SOAPBody) obj ; list = sBody.getEncodingStyles(); 1.6 +14 -1 xml-axis/java/src/org/apache/axis/encoding/DeserializerImpl.java Index: DeserializerImpl.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DeserializerImpl.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DeserializerImpl.java 6 Mar 2002 19:35:49 -0000 1.5 +++ DeserializerImpl.java 14 Mar 2002 04:20:52 -0000 1.6 @@ -62,6 +62,7 @@ import org.apache.axis.message.SAX2EventRecorder; import org.apache.axis.message.SAXOutputter; import org.apache.axis.message.SOAPHandler; +import org.apache.axis.Part; import org.apache.axis.utils.JavaUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -366,13 +367,25 @@ ((MessageElement)ref).publishToHandler((DefaultHandler) context); context.setRecorder(r); } else { + + if( !href.startsWith("#") && defaultType != null && ref instanceof Part ){ + //For attachments this is the end of the road-- invoke deserializer + Deserializer dser= context.getDeserializerForType(defaultType ); + if(null != dser){ + dser.startElement(namespace, localName, + qName, attributes, + context); + ref = dser.getValue(); + + } + } + // If the ref is not a MessageElement, then it must be an // element that has already been deserialized. Use it directly. value = ref; valueComplete(); } - // !!! INSERT DEALING WITH ATTACHMENTS STUFF HERE? } else { isHref = false; onStartElement(namespace, localName, qName, attributes, 1.2 +6 -0 xml-axis/java/src/org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.java Index: JAFDataHandlerDeserializerFactory.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- JAFDataHandlerDeserializerFactory.java 26 Jan 2002 02:40:34 -0000 1.1 +++ JAFDataHandlerDeserializerFactory.java 14 Mar 2002 04:20:52 -0000 1.2 @@ -78,17 +78,23 @@ import org.apache.axis.encoding.DeserializationContext; import org.apache.axis.encoding.DeserializerImpl; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * A JAFDataHandlerDeserializer Factory * * @author Rich Scheuerle ([EMAIL PROTECTED]) */ public class JAFDataHandlerDeserializerFactory extends BaseDeserializerFactory { + protected static Log log = LogFactory.getLog(JAFDataHandlerDeserializerFactory.class.getName()); public JAFDataHandlerDeserializerFactory(Class javaType, QName xmlType) { super(JAFDataHandlerDeserializer.class, false, xmlType, javaType); + log.debug("Enter JAFDataHandlerDeserializerFactory ("+javaType+", "+xmlType+")"); } public JAFDataHandlerDeserializerFactory() { super(JAFDataHandlerDeserializer.class, false); + log.debug("Enter JAFDataHandlerDeserializerFactory ()" ); } }