I tried the latest code with this commit from the CVS. The EchoAttachment
sample still fails with with a server-side exception which indicates that
there is a parameter mismatch to call
"EchoAttachmentService.echo(javax.activation.DataHandler)" with a
"org.apache.axis.attachments.AttachmentPart". It's the same problem as I
reported before.
Thanks,
Raymond
----- Original Message -----
From: "Russell Butek" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, March 14, 2002 7:09 AM
Subject: cvs commit: xml-axis/java/src/org/apache/axis/encoding/ser
JAFDataHandlerDeserializerFactory.java
> Does this mean Doug's issue #1 is now fixed? Can I now remove that entry
> in the "MUST DO FOR BETA 1" list?
>
> Russell Butek
> [EMAIL PROTECTED]
> ---------------------- Forwarded by Russell Butek/Austin/IBM on 03/14/2002
> 09:08 AM ---------------------------
>
>
>
>
>
> [EMAIL PROTECTED] on 03/13/2002 10:20:52 PM
>
> Please respond to [EMAIL PROTECTED]
>
> To: [EMAIL PROTECTED]
> cc:
>
> Subject: cvs commit: xml-axis/java/src/org/apache/axis/encoding/ser
> JAFDataHandlerDeserializerFactory.java
>
>
>
>
> 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/JAFDataHandlerDeserializerFac
tory.java
>
>
> Index: JAFDataHandlerDeserializerFactory.java
> ===================================================================
> RCS file:
>
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/JAFDataHandlerDeser
ializerFactory.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 ()" );
> }
> }
>
>
>
>
>