Actually I am using Soap implementation 2.3.1. I just want to try my luck here with AXIS. I need to resolve the problem as soon as possible, so please accept my apology for sending this email to axis user list.
I got the following error message from the server: -------------------------------------------------------------- Caught SOAPException (SOAP-ENV:Client): Parsing error, response was: An invalid XML character (Unicode: 0x1) was found in the element content of the document. -------------------------------------------------------------- The service have several methods, logon(), openFolder(), search(), and getdoc(). logon(), openFolder(), search() exchange regular types (String, etc.). but getdoc() returns an image (byte[]) as class member. The jpeg image I got is correct as I can show it with browser. Intersting thing is once I call the gedoc(), I get this error if I call search(). But I can call openFolder(). So I guess that the search() method might have problem. Here is the JavaBean that are used to call search() methods: I appreciate any suggestions from you. Thanks, ================================= package com.symcor.od.common.soap.message; import java.util.*; /** * <p>Title: </p> * <p>Description: this class represents a search criteria where its name is the * criterion value where its search value will be given by an application user. </p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: </p> * @author unascribed * @version 1.0 */ public final class Criterion implements java.lang.Cloneable, java.io.Serializable { public final static int OPEQUAL = 1; public final static int OPBETWEEN = OPEQUAL + 1; public final static int TYPE_LIST = OPBETWEEN + 1; public final static int TYPE_NON_LIST = TYPE_LIST + 1; public final static String VALUE_LIST_ALL = "** All **"; // Fields private String name; private int searchOp; /** currently unused. If used, they need to be converted to Criterion operand constants. */ // private int[] validOps; private int type; // seems that char type is not supported by BeanSerializer // perhaps that char type is not supported by XML schema. private String[] fixedValues; private String[] defaultValues; // default values set by the administrator, equal to ODCriterion.getValues(). private String[] searchValues; public static final String KEYWORD_IS_REQUIRED = "Required"; // Constructors public Criterion(String name) { this.name = name; }; public Criterion() { }; // Methods public String getName() { return name; }; public void setName (String name) { this.name = name; }; public int getOperand() { return searchOp; }; public void setOperand(int searchOp) { this.searchOp = searchOp; }; public int getType() {return type; }; public void setType(int type) {this.type = type;}; public String[] getFixedValues() {return fixedValues; }; public void setFixedValues(String[] fixedValues) {this.fixedValues = fixedValues; }; public String[] getSearchValues() {return this.searchValues; }; public void setSearchValues(String[] searchValues) {this.searchValues = searchValues; }; // default values; public String[] getDefaultValues() { return defaultValues; }; public void setDefaultValues(String[] defaultValues) {this.defaultValues = defaultValues;}; public Object clone () { try { return super.clone(); } catch (CloneNotSupportedException e) { throw new java.lang.Error ("JVM error, check up your JVM version." ); } } public static void main (String[] args) { Criterion c1 = new Criterion("Processing Date [YYYY-MM-DD) [Required]"); System.exit(0); c1.setDefaultValues(new String[] {"default 000", "default 111"}); c1.setFixedValues(new String[] {"fixed 000", "fixed 111"}); c1.setSearchValues(new String[] {"search 000"}); Vector v = new Vector(); Criterion c2 = (Criterion)c1.clone(); c2.setName("c two"); v.add(c2); System.out.println(v); } }