ws-xmlrpc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Rall <...@finemaltcoding.com>
Subject Re: XML-RPC applet fix: removed sun.misc dependency
Date Thu, 31 Jan 2002 16:28:37 GMT
Hey Raymond.  As soon as we get the Base64 class licensing issue
cleared up with Kevin Kelley I can commit your changes.

Raymond Penners <raymond@duologix.nl> writes:

> Hi all,
>
> I am using your XML-RPC (1.0) in an applet. At first, things didn't
> work because org.apache.xmlrpc.applet.XmlRpcSupport referred to
> sun.misc.BASE64Encoder for encoding/decoding base64 data. This is Sun
> specific and does not work on all browsers. On my setup, things only
> functioned correctly only using Netscape 4.x. Both IE, and Mozilla
> failed.
>
> Other users also encountered this problem, with no solution offered:
>
> http://helma.org/archives/xmlrpc/2000-August/000164.html
>
> I easily fixed this by removing the dependency on sun.misc.BASE64* to
> org.apache.xmlrpc.Base64. Now, it works across all browsers.
>
> Please let me know what you think of this patch. I've successfully
> transferred binary data between a PHP XML-RPC server and an XML-RPC
> applet (both ways).
>
> Regards,
> -- 
> Raymond Penners -*- raymond@dotsphinx.com -*- www.dotsphinx.com
> --- SimpleXmlRpcClient.java.orig	Thu Jan 31 14:08:24 2002
> +++ SimpleXmlRpcClient.java	Thu Jan 31 14:09:17 2002
> @@ -62,6 +62,7 @@
>  import java.util.*;
>  import java.text.*;
>  import java.net.*;
> +import org.apache.xmlrpc.Base64;
>  
>  
>  /**
> @@ -188,8 +189,7 @@
>  	    writer.endElement ("dateTime.iso8601");
>  	} else if (what instanceof byte[]) {
>  	    writer.startElement ("base64");
> -	    sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder ();
> -	    writer.write (encoder.encodeBuffer ((byte[]) what));
> +	    writer.write (Base64.encode ((byte[]) what));
>  	    writer.endElement ("base64");
>  	} else if (what instanceof Vector) {
>  	    writer.startElement ("array");
> @@ -543,12 +543,7 @@
>                      }
>                      break;
>                  case BASE64:
> -                    sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder ();
> -                    try {
> -                        value = decoder.decodeBuffer (cdata);
> -                    } catch (IOException x) {
> -                        throw new RuntimeException ("Error decoding base64 tag: "+x.getMessage
());
> -                    }
> +                    value = Base64.decode (cdata.toCharArray());
>                      break;
>                  case STRING:
>                      value = cdata;

Mime
View raw message