Hello Scott,
In your wsdl:portType definition, you have the same message for the
operation's input and output. Therefore, the parts' names are the same.
So you are telling Axis that you want it to be an IN/OUT parameter and
it should use a Holder class as parameter.
If you do not want to use a Holder, you should point the operation's
output to another message, one with a different part name, in this case
referring to a ComplexType with no elements (void wrapper).
Something like:
<wsdl:message name="AccountDetails">
<wsdl:part name="account" element="tns:account"/>
</wsdl:message>
<wsdl:message name="empty">
<wsdl:part name="empty" element="tns:emptyElement"/>
</wsdl:message>
<wsdl:portType name="Account">
<wsdl:operation name="createAccount">
<wsdl:input message="tns:AccountDetails"/>
<wsdl:output message="tns:empty"/>
</wsdl:operation>
<wsdl:operation name="updateAccount">
<wsdl:input message="tns:AccountDetails"/>
<wsdl:output message="tns:empty"/>
</wsdl:operation>
</wsdl:portType>
With in your types section or XSD something like:
<xsd:element name="emptyElement">
<xsd:complexType>
<sequence/>
</xsd:complexType>
</xsd:element>
BTW: It is not recommended (WS-I BP1.0) to use wsdl:import to import XSD
files. Use the commented way (but with import) instead.
Regards,
Dies
Scott McCoy wrote:
The attached WSDL and XSD are giving me this method signature.
public class AccountSOAPBindingImpl implements
tufte.model.service.account.Accou
nt{
public void createAccount(
tufte.model.service.account.holders.AccountHolder account) throws
java.rmi.RemoteException {
}
public void updateAccount(
tufte.model.service.account.holders.AccountHolder account) throws
java.rmi.RemoteException {
}
}
I'm expecting:
public void updateAccount(tufte.model.service.account.Account account)
throws java.rmi.RemoteException { }
Not this.
Thanks!
Scott S. McCoy
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="urn:Account"
targetNamespace="http://plm.marchex.com/service/account"
xmlns:tns="http://plm.marchex.com/service/account"
xmlns:typens="http://plm.marchex.com/service/account"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!--
<wsdl:types>
<xsd:schema targetNamespace="http://plm.marchex.com/services/account"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<xsd:include schemaLocation="account.xsd"/>
</xsd:schema>
</wsdl:types>
-->
<wsdl:import namespace="http://plm.marchex.com/service/account"
location="account.xsd"/>
<wsdl:message name="AccountDetails">
<wsdl:part name="account" element="tns:account"/>
</wsdl:message>
<wsdl:portType name="Account">
<wsdl:operation name="createAccount">
<wsdl:input message="tns:AccountDetails"/>
<wsdl:output message="tns:AccountDetails"/>
</wsdl:operation>
<wsdl:operation name="updateAccount">
<wsdl:input message="tns:AccountDetails"/>
<wsdl:output message="tns:AccountDetails"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AccountSOAPBinding" type="tns:Account">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="createAccount">
<soap:operation soapAction="createAccount"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="updateAccount">
<soap:operation soapAction="createAccount"/>
<wsdl:input>
<!-- <soap:body use="encoded"
namespace="http://plm.marchex.com/service/account"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
-->
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AccountService">
<!-- <wsdl:requestFlow> No such thing exists, this is just to remind me to
use a custom deploy.wsdd
<wsdl:handler
type="java:tufte.model.service.handlers.AuthenHandler"/>
</wsdl:requestFlow> -->
<wsdl:port name="Account" binding="tns:AccountSOAPBinding">
<soap:address
location="http://localhost:8080/axis/services/Account"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
--
Dies KOPER <[EMAIL PROTECTED]> (changed on 1 July 2005)
Fujitsu Ltd - MWPF1 (changed from MWPF3 on 21 Nov 2005)
2-15-16, Shin-Yokohama, Kouhoku-ku, Yokohama, 222-0033, Japan
Tel. +81(45)-475-5605 (internal 7181-4217)