Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Webservice Parameter Errors

Status
Not open for further replies.

loydwilson

IS-IT--Management
Mar 30, 2001
8
Does anyone know of an issue with passing more than 3 parameters to a non-CF webservice? I need to pass 4 parameters. When passing only 3 of the 4, I receive an error that looks normal in that one required parameter is missing. Below is that error:

Web service operation ""getUpdates"" with parameters {signature={MC0CFBn8E80xyDrgSI6dJgHbGuzxQyWtAhUApvrWBC3BVAiZnytE2qsy1bUdIXI=},
start={2005-03-01T14:38:03.000-05:00},
vse={3},} could not be found.


When I pass all 4 parameters, I receive the following error:

Could not perform web service invocation ""getUpdates"" because java.lang.IllegalArgumentException: argument type mismatch.


This error is behavior is the same regardless of which parameter is dropped or added. This appears to be a CF issue but I can not find any documentation relating to this problem but also after Googling all night long could not find an example of anyone passing more than 3 parameters to a non-CF webservice.

Has anyone else experienced this issue? I am trying to keep application pure CFMX but cannot waste much more time trying to figure it out. If anyone has a workaround, it would be much appreciated.

Randy
 
It seems that the datatype or more of your parameters does not match the expected datatype of the webservice - do you know what the datatype of each expected argument is?
 
Thanks for the response. I should have done a better job of providing detail. The WSDL is sitting behind a firewall but through a tunnel have confirmed accessibility by pulling back the wsdl that is provided below. Webservice manager does not see any SOAP activity when we attempt to access the service. This is a critical problem that is going to require writing interface in different language if we can not resolve even though we want to keep in coldfusion to be consistent with associated applications. I definitely appreciate any assistance as I am pulling my hair out. Following is the different methods that I have used in trying to utilize this service:

1.
<cfscript>
ws = createObject("webservice"," xlatstring = ws.getUpdates(
start = "2005-03-01T14:38:03.000-05:00",
currentTime = "2005-03-19T10:19:36.000-05:00", signature = "MC0CFBn8E80xyDrgSI6dJgHbGuzxQyWtAhUApvrWBC3BVAiZnytE2qsy1bUdIXI=",
vse = "3"
);
</cfscript>


2.
<cfscript>
stArgs = structNew();
stArgs.vse = "3";
stArgs.start = "2005-03-01T14:38:03.000-05:00";
stArgs.currentTime = "2005-03-23T02:27:14.000-05:00";
stArgs.signature = "MC0CFHbMRkbkvC1Sl8ZSvnlOfmNpg1STAhUAkCK0trEI9nb9aRns6M5cq3oPzsU=";
</cfscript>

<cfobject webservice=" name="ws_lsmService">
<cfinvoke webservice="#ws_lsmService#"
method="getUpdates"
parameters="#stArgs#"
returnvariable="variables.repUpdate">

<cfdump var="#variables.repUpdate#">

3.
<cfobject webservice=" name="ws_lsmService">
<cfinvoke
webservice="#ws_lsmService#"
method="getUpdates"
returnvariable="test">
<cfinvokeargument name="vse" value="3" />
<cfinvokeargument name="currentTime" value="2005-03-23T02:27:14.000-05:00" />
<cfinvokeargument name="start" value="2005-03-01T14:38:03.000-05:00" />
<cfinvokeargument name="signature" value="MC0CFHbMRkbkvC1Sl8ZSvnlOfmNpg1STAhUAkCK0trEI9nb9aRns6M5cq3oPzsU=" />

</cfinvoke>



Following is full WSDL for your review:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace=" xmlns:wsdl=" xmlns:xsd=" xmlns:wsdlsoap=" xmlns:intf=" xmlns:impl=" xmlns:soapenc=" xmlns:apachesoap=" xmlns=" <wsdl:message name="getUpdatesResponse">
<wsdl:part name="result" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="getUpdatesRequest">
<wsdl:part name="vse" type="xsd:string"/>
<wsdl:part name="currentTime" type="xsd:dateTime"/>
<wsdl:part name="start" type="xsd:dateTime"/>
<wsdl:part name="signature" type="xsd:base64Binary"/>
</wsdl:message>
<wsdl:message name="putUpdatesRequest">
<wsdl:part name="vse" type="xsd:string"/>
<wsdl:part name="currentTime" type="xsd:dateTime"/>
<wsdl:part name="xmlData" type="xsd:string"/>
<wsdl:part name="signature" type="xsd:base64Binary"/>
</wsdl:message>
<wsdl:message name="putUpdatesResponse">
<wsdl:part name="result" type="xsd:boolean"/>
</wsdl:message>
<wsdl:portType name="VSEService">
<wsdl:eek:peration name="getUpdates" parameterOrder="vse currentTime start signature">
<wsdl:input name="getUpdatesRequest" message="intf:getUpdatesRequest"/>
<wsdl:eek:utput name="getUpdatesResponse" message="intf:getUpdatesResponse"/>
</wsdl:eek:peration>
<wsdl:eek:peration name="putUpdates" parameterOrder="vse currentTime xmlData signature">
<wsdl:input name="putUpdatesRequest" message="intf:putUpdatesRequest"/>
<wsdl:eek:utput name="putUpdatesResponse" message="intf:putUpdatesResponse"/>
</wsdl:eek:peration>
</wsdl:portType>
<wsdl:binding name="VSEServiceSoapBinding" type="intf:VSEService">
<wsdlsoap:binding style="rpc" transport=" <wsdl:eek:peration name="getUpdates">
<wsdlsoap:eek:peration soapAction=""/>
<wsdl:input name="getUpdatesRequest">
<wsdlsoap:body use="encoded" encodingStyle=" namespace=" </wsdl:input>
<wsdl:eek:utput name="getUpdatesResponse">
<wsdlsoap:body use="encoded" encodingStyle=" namespace=" </wsdl:eek:utput>
</wsdl:eek:peration>
<wsdl:eek:peration name="putUpdates">
<wsdlsoap:eek:peration soapAction=""/>
<wsdl:input name="putUpdatesRequest">
<wsdlsoap:body use="encoded" encodingStyle=" namespace=" </wsdl:input>
<wsdl:eek:utput name="putUpdatesResponse">
<wsdlsoap:body use="encoded" encodingStyle=" namespace=" </wsdl:eek:utput>
</wsdl:eek:peration>
</wsdl:binding>
<wsdl:service name="VSEServiceService">
<wsdl:port name="VSEService" binding="intf:VSEServiceSoapBinding">
<wsdlsoap:address location=" </wsdl:port>
</wsdl:service>
</wsdl:definitions>
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top