Here's a little more info on this subject:
I am using apache axis 1.1
Java interface used to generate WSDL.
//**** iDAO.java
import java.util.List;
public interface iDAO {
public List executeQuery(String s);
public int executeUpdate(String s);
}
WSDL file generate by running Java2WSDL using iDAO.class (above)
//****daoservice.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="
http://Interface.daopackage"
xmlns:impl="
http://Interface.daopackage"
xmlns:intf="
http://Interface.daopackage"
xmlns:apachesoap="
http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="
http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="
http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/"
xmlns="
http://schemas.xmlsoap.org/wsdl/">
<wsdl:message name="executeUpdateResponse">
<wsdl
art name="executeUpdateReturn" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="executeQueryResponse">
<wsdl
art name="executeQueryReturn" type="soapenc:Array"/>
</wsdl:message>
<wsdl:message name="executeQueryRequest">
<wsdl
art name="in0" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="executeUpdateRequest">
<wsdl
art name="in0" type="xsd:string"/>
</wsdl:message>
<wsdl
ortType name="iDAO">
<wsdl
peration name="executeQuery" parameterOrder="in0">
<wsdl:input name="executeQueryRequest"
message="impl:executeQueryRequest"/>
<wsdl
utput name="executeQueryResponse"
message="impl:executeQueryResponse"/>
</wsdl
peration>
<wsdl
peration name="executeUpdate" parameterOrder="in0">
<wsdl:input name="executeUpdateRequest"
message="impl:executeUpdateRequest"/>
<wsdl
utput name="executeUpdateResponse"
message="impl:executeUpdateResponse"/>
</wsdl
peration>
</wsdl
ortType>
<wsdl:binding name="DAOServiceSoapBinding" type="impl:iDAO">
<wsdlsoap:binding style="rpc"
transport="
http://schemas.xmlsoap.org/soap/http"/>
<wsdl
peration name="executeQuery">
<wsdlsoap
peration soapAction=""/>
<wsdl:input name="executeQueryRequest">
<wsdlsoap:body use="encoded"
encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"
namespace="
http://Interface.daopackage"/>
</wsdl:input>
<wsdl
utput name="executeQueryResponse">
<wsdlsoap:body use="encoded"
encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"
namespace="
http://Interface.daopackage"/>
</wsdl
utput>
</wsdl
peration>
<wsdl
peration name="executeUpdate">
<wsdlsoap
peration soapAction=""/>
<wsdl:input name="executeUpdateRequest">
<wsdlsoap:body use="encoded"
encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"
namespace="
http://Interface.daopackage"/>
</wsdl:input>
<wsdl
utput name="executeUpdateResponse">
<wsdlsoap:body use="encoded"
encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"
namespace="
http://Interface.daopackage"/>
</wsdl
utput>
</wsdl
peration>
</wsdl:binding>
<wsdl:service name="iDAOService">
<wsdl
ort name="DAOService"
binding="impl
AOServiceSoapBinding">
<wsdlsoap:address
location="
http://thehost:8082/axis/services/DAOService"/>
</wsdl
ort>
</wsdl:service>
</wsdl:definitions>
IDAO.java generated by running WSDL2Java using above WSDL.
/**
* IDAO.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package com.rf3labs.services.dbconn.dao.ws;
public interface IDAO extends java.rmi.Remote {
public java.lang.Object[] executeQuery(java.lang.String in0) throws
java.rmi.RemoteException;
public int executeUpdate(java.lang.String in0) throws
java.rmi.RemoteException;
}
You will notice that the return type of executeQuery method is
java.lang.Object[] rather than what was defined in iDAO.java interface
which is java.util.List.
Hi,
When I generate the classes using a WSDL I get a return type of
Object[] instead of the java.util.List object. From what I understand
List is serializable.
Any reason why it is changing the return type to Object[]?
Thanks,
-R