Following is the WSDL generated by AXIS for one of my custom classes
- <complexType name="OmniStandardOutputBean">
- <sequence>
<element name="messages" nillable="true" type="impl:ArrayOf_tns1_OmniMessage" />
<element name="halInfo" nillable="true" type="tns1:OmniHalogenInfo" />
<element name="fileDigit" nillable="true" type="xsd:string" />
<element name="cicsTaskId" type="xsd:int" />
<element name="hostVersion" nillable="true" type="xsd:string" />
<element name="performanceTime" nillable="true" type="tns1:OmniPerformanceTimes" />
<element name="msgArrayPointer" type="xsd:int" />
<element name="traceMessage" nillable="true" type="xsd:string" />
<element maxOccurs="unbounded" name="message" nillable="true" type="tns1:OmniMessage" />
</sequence>
</complexType>
I think llast line <element maxOccurs="unbounded" name="message" nillable="true" type="tns1:OmniMessage" />
is wrongly generated as the the same thing is expressed by the line
<element name="messages" nillable="true" type="impl:ArrayOf_tns1_OmniMessage" />
I have attached my class file.This faulty generation of WSDL from .class file by AXIS is a bug on AXIS?
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
package com.sungard.omniconnect.framework; import java.io.Serializable; import java.io.PrintWriter; /** * Provides a structure for the standard output values. * * @author Arvind Chavar * @version %I%, %G% */ public class OmniStandardOutputBean implements Serializable{ private static final int MAX_MSGs = 10; //A MAX_MSGs = 5; private String traceMessage; private OmniMessage[] messages; private String hostVersion; private String fileDigit; private OmniHalogenInfo halInfo; private OmniPerformanceTimes performanceTime; private int msgArrayPointer ;//A Added to keep track of where to add the element in the array. //A Added on 10/14/2002 - For Matcom Alter the COBOL CICS program to return the CICS taskno //A in the OmniConnect standard output. (I have checked, there is room in FILLER - Jim) private int cicsTaskId; public int getCicsTaskId(){ return cicsTaskId; } public void setCicsTaskId(int cicsTaskId){ this.cicsTaskId = cicsTaskId; } // private String[] frameWorkMsgs; // private int frmWrkMsgsCount; /* public void setFrameWorkMsg(String msg){ frameWorkMsgs[frmWrkMsgsCount] = msg; frmWrkMsgsCount++; } public String getFrameWorkMsg(int i){ return frameWorkMsgs[i]; } public int getFrmWrkMsgsCount(){ return frmWrkMsgsCount; } */ /** * Is default constructor */ public OmniStandardOutputBean(){ // System.out.println("OmniStandardOutputBean"); messages = new OmniMessage[MAX_MSGs]; halInfo = new OmniHalogenInfo(); performanceTime = new OmniPerformanceTimes(); messages = new OmniMessage[MAX_MSGs]; // frameWorkMsgs = new String[MAX_MSGs]; msgArrayPointer = 0; } /** * Sets the trace message. * * @param traceMEssage the trace message to be assigned. */ public void setTraceMessage(String traceMessage){ this.traceMessage = traceMessage; } /** * Sets the server messages. * * @param meassages array of messages. */ public void setMessages(OmniMessage[] messages){ this.messages = messages; }
/** * Sets the message at the current OmniMsg array pointer * * @param meassages the message to be set. */ public void setMessage(OmniMessage msg){ messages[msgArrayPointer] = msg; msgArrayPointer++; } /** * Sets the message at the specified index * * @param meassages the message to be set. */ public void setMessage(OmniMessage msg,int i){ if(i > msgArrayPointer){ messages[msgArrayPointer] = msg; msgArrayPointer++; } else{ messages[i] = msg; } } /** * Sets the host version. * * @param hostVersion the host version. */ public void setHostVersion(String hostVersion){ this.hostVersion = hostVersion; } /** * Sets the file digit. * * @param fileDigit the file digit to be set. */ public void setFileDigit(String fileDigit){ this.fileDigit = fileDigit; } /** * Sets the halogen info. * * @param halInfo the halogen Info. */ public void setHalInfo(OmniHalogenInfo halInfo){ this.halInfo = halInfo; } /** * Sets the performance time. * * @param performanceTime the performance time to be set. */ public void setPerformanceTime(OmniPerformanceTimes performanceTime){ this.performanceTime = performanceTime; } /** * Returns trace message. * * @return trace message. */ public String getTraceMessage(){ return traceMessage; } /** * Returns the array of server messages. * * @return the array of server messages. */ public OmniMessage[] getMessages(){ return messages; } /** * Returns the OmniMsg object stored at the currrent msgArrayPointer.. * * @return the OmniMsg object stored at the currrent msgArrayPointer.. */ public OmniMessage getMessage(int i){ return messages[i]; } /** * Gets the OmniMsg object stored at the currrent msgArrayPointer. * * @return the OmniMsg object stored at the currrent msgArrayPointer. */ public OmniMessage getMessage(){ return messages[msgArrayPointer]; } /** * Returns the index next to the last elemnt added. * * @return the index next to the last elemnt added. */ public int getMsgArrayPointer(){ return msgArrayPointer; } /** * Returns host version. * * @return host version. */ public String getHostVersion(){ return hostVersion; } /** * Returns file digit. * * @return the file digit. */ public String getFileDigit(){ return fileDigit; } /** * Returns halogen info. * * @return halogen info. */ public OmniHalogenInfo getHalInfo(){ return halInfo; } /** * Dumps the halogen and performance times to the specified stream. */ public void dumpHaloPerfInfo(PrintWriter os){ halInfo.dump(os); performanceTime.dump(os); } /** * Returns performance time. * * @return performance time. */ public OmniPerformanceTimes getPerformanceTime(){ return performanceTime; } /** * Returns the string representation of this object.It includes all the fields of the object. * Each fields name separated by ":" from its value is appended to the StringBuffer(internally * StringBuffer is used).Each field of the object is on a new line. * * @return string representation of this object. */ public String toString(){//A Added on 11/10/01 StringBuffer result = new StringBuffer(); //result.append("\n traceMessage : "); result.append( traceMessage); result.append("\n hostVersion : "); result.append( hostVersion); result.append("\n fileDigit : " ); result.append( fileDigit ); // result.append("\n performanceTimes : \n " + performanceTime); result.append("\n CICS Task Id : "); result.append(cicsTaskId); result.append("\n\n HALOGEN INFO : \n"); result.append(halInfo); result.append("\n\n PERFORMANCE TIMES(milliseconds) : \n"); result.append( performanceTime); result.append("\n"); result.append("\n OMNIMESSAGES : ---------"); for(int i=0 ; i< msgArrayPointer ; i++){ result.append("\n " ); result.append( messages[i].toString()); } return result.toString(); } }