Hehe...looks like a hack :) Can u try using a FilterOutputStream? that
at least avoids exposing the ugliness too much :) :)
-- dims
On Mon, 14 Feb 2005 01:10:08 -0800 (PST), [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
> toshi 2005/02/14 01:10:04
>
> Modified: java/src/org/apache/axis/client AdminClient.java
> Log:
> To support multi-language.
>
> Revision Changes Path
> 1.86 +33 -1
> ws-axis/java/src/org/apache/axis/client/AdminClient.java
>
> Index: AdminClient.java
> ===================================================================
> RCS file:
> /home/cvs/ws-axis/java/src/org/apache/axis/client/AdminClient.java,v
> retrieving revision 1.85
> retrieving revision 1.86
> diff -u -r1.85 -r1.86
> --- AdminClient.java 23 Nov 2004 00:39:21 -0000 1.85
> +++ AdminClient.java 14 Feb 2005 09:10:04 -0000 1.86
> @@ -24,6 +24,7 @@
> import org.apache.axis.utils.Messages;
> import org.apache.axis.utils.Options;
> import org.apache.commons.logging.Log;
> +import org.apache.commons.lang.StringEscapeUtils;
>
> import javax.xml.rpc.ServiceException;
> import java.io.ByteArrayInputStream;
> @@ -449,6 +450,37 @@
> }
>
> /**
> + * Unescape the specified String.
> + * @param message - to unescape String
> + * @return unescaped message
> + */
> + public String unescape(String message) {
> + StringBuffer buf = new StringBuffer();
> +
> + int length = message.length();
> + char character;
> + for (int i = 0; i < length; i++) {
> + character = message.charAt( i );
> + if (character == '&') {
> + if (i+7 <= length)
> + if (message.charAt(i+1)=='#' && message.charAt(i+2)=='x' &&
> + message.charAt(i+7)==';') {
> + buf.append("\\u");
> + buf.append(message.charAt(i+3));
> + buf.append(message.charAt(i+4));
> + buf.append(message.charAt(i+5));
> + buf.append(message.charAt(i+6));
> + i+=7;
> + }
> + } else {
> + buf.append(character);
> + }
> + }
> +
> + return StringEscapeUtils.unescapeJava(buf.toString());
> + }
> +
> + /**
> * Creates in instance of <code>AdminClient</code> and
> * invokes <code>process(args)</code>.
> * <p>Diagnostic output goes to <code>log.info</code>.</p>
> @@ -461,7 +493,7 @@
>
> String result = admin.process(args);
> if (result != null) {
> - System.out.println(result);
> + System.out.println( admin.unescape(result) );
> } else {
> System.exit(1);
> }
>
>
--
Davanum Srinivas - http://webservices.apache.org/~dims/