Jeremy, Axis is working the way it was designed to. It determines which method to invoke based on the first child element within the SOAP Body, and it ignores any additional elements in the SOAP Body. When using RPC style, the first child element is a generated wrapper element the has the same name as the operation method. When using Document style, the first child element is the element referenced in the first part defined in your message description. You have defined two input messages that contain the same element (<xsd1:Authentication>), so both requests get dispatched to the same method (getTitleSearch).
Your WSDL has errors in it. You are mixing document and rpc styles. I assume that you want to use document style. If so, you must remove the encodingStyle and namespace attributes from your <soap:body> definitions. The <soap:body> elements should be defined as: <soap:body use="literal"/> You also must have at most one part in your message definitions. Your MessageConfirmTitleSearchIn message should refer to an element that is defined as a sequence of the Authentication and Confirmation elements. Here's an updated WSDL: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://abstractor.webservices.sfsltd.com" xmlns:xsd1="http://abstractor.webservices.sfsltd.com" targetNamespace="http://abstractor.webservices.sfsltd.com" name="Abstractor"> <wsdl:types> <xs:schema targetNamespace="http://abstractor.webservices.sfsltd.com"> <xs:include schemaLocation="AbstractorTypes.xsd"/> <xs:element name="confirmTitleSearch"> <xs:complexType> <xs:sequence> <xs:element ref="xsd1:Authentication"/> <xs:element ref="xsd1:Confirmation"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </wsdl:types> <wsdl:message name="MessageGetTitleSearchIn"> <wsdl:part name="authentication" element="xsd1:Authentication"/> </wsdl:message> <wsdl:message name="MessageGetTitleSearchOut"> <wsdl:part name="arg1" element="xsd1:TitleSearch"/> </wsdl:message> <wsdl:message name="MessageConfirmTitleSearchIn"> <wsdl:part name="parameters" element="xsd1:confirmTitleSearch"/> </wsdl:message> <wsdl:portType name="AbstractorSoapPort"> <wsdl:operation name="getTitleSearch"> <wsdl:input message="tns:MessageGetTitleSearchIn"/> <wsdl:output message="tns:MessageGetTitleSearchOut"/> </wsdl:operation> <wsdl:operation name="confirmTitleSearch"> <wsdl:input message="tns:MessageConfirmTitleSearchIn"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="AbstractorBinding" type="tns:AbstractorSoapPort"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getTitleSearch"> <soap:operation soapAction="getTitleSearch"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="confirmTitleSearch"> <soap:operation soapAction="confirmTitleSearch"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="Abstractor"> <wsdl:port name="Abstractor" binding="tns:AbstractorBinding"> <soap:address location="http://localhost/webservices/services/Abstractor"/> </wsdl:port> </wsdl:service> </wsdl:definitions> - Anne On Apr 11, 2005 3:42 PM, Jeremy Nix <[EMAIL PROTECTED]> wrote: > > > I haven't been able to figure out exactly why its happening, but when my > client application tries to make a web service call, the web service > actually executes the wrong service call. I've downloaded the source and > followed the execution of the request and the call is correct until it > enters RPCProvider.processMessage(). In this method, the method (operation) > is changed to a different method (operation). To what I can tell, Axis is > having issues with the fact that my 1st parameter to my method is a > RPCElement and the 2nd parameter to my method is a SOAPBodyElement. > Honestly, I could not determine how Axis classified these parameters as > RPCElements vs a SOAPBodyElement, but that is besides the point. The 1st > element, because it is an RPCElement is therefore considered the body of the > method (the parameters), and then the operation gets changed due to the drop > of the 2nd parameter. See the latest RPCProvider.processMessage() to get a > full understanding. > > Anyways, has anyone else came across this? Were you able to find a > workaround, or possibly the WSDL is incorrect. > > Here's my WSDL: > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:tns="http://abstractor.webservices.sfsltd.com" > xmlns:xsd1="http://abstractor.webservices.sfsltd.com" > targetNamespace="http://abstractor.webservices.sfsltd.com" > name="Abstractor"> > > <wsdl:types> > <xs:schema > targetNamespace="http://abstractor.webservices.sfsltd.com"> > <xs:include schemaLocation="AbstractorTypes.xsd"/> > </xs:schema> > </wsdl:types> > <wsdl:message name="MessageGetTitleSearchIn"> > <wsdl:part name="authentication" element="xsd1:Authentication"/> > </wsdl:message> > <wsdl:message name="MessageGetTitleSearchOut"> > <wsdl:part name="arg1" element="xsd1:TitleSearch"/> > </wsdl:message> > <wsdl:message name="MessageConfirmTitleSearchIn"> > <wsdl:part name="authentication" element="xsd1:Authentication"/> > <wsdl:part name="confirmation" element="xsd1:Confirmation"/> > </wsdl:message> > <wsdl:portType name="AbstractorSoapPort"> > <wsdl:operation name="getTitleSearch"> > <wsdl:input message="tns:MessageGetTitleSearchIn"/> > <wsdl:output message="tns:MessageGetTitleSearchOut"/> > </wsdl:operation> > <wsdl:operation name="confirmTitleSearch"> > <wsdl:input message="tns:MessageConfirmTitleSearchIn"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="AbstractorBinding" type="tns:AbstractorSoapPort"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="getTitleSearch"> > <soap:operation soapAction="getTitleSearch"/> > <wsdl:input> > <soap:body > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://abstractor.webservices.sfsltd.com" > use="literal"/> > > </wsdl:input> > <wsdl:output> > <soap:body > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://abstractor.webservices.sfsltd.com" > use="literal"/> > > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="confirmTitleSearch"> > <soap:operation soapAction="confirmTitleSearch"/> > <wsdl:input> > <soap:body > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://abstractor.webservices.sfsltd.com" > use="literal"/> > > </wsdl:input> > <wsdl:output> > <soap:body > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://abstractor.webservices.sfsltd.com" > use="literal"/> > > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="Abstractor"> > <wsdl:port name="Abstractor" > binding="tns:AbstractorBinding"> > <soap:address > location="http://localhost/webservices/services/Abstractor"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > _______________________ > Jeremy Nix > Senior Application Developer > Southwest Financial Services, LTD. > (513) 621-6699 x1158 > www.sfsltd.com >