我正在尝试使用ColdFusion中的以下Web服务:
http://xserv.dell.com/services/assetservice.asmx
我应该能够使用以下代码使用Web服务:
<cfscript>
params = structNew();
params.guid = "11111111-1111-1111-1111-111111111111";
params.applicationName = "test";
params.serviceTags = "JLJMHX1";
ws = createObject("webservice", "http://xserv.dell.com/services/assetservice.asmx?wsdl");
writeDump(ws)
ws.GetAssetInformation(params);
</cfscript>
转储WSDL信息(ws)的结果表明GetAssetInformation方法具有以下签名:
getAssetInformation(com.microsoft.wsdl.types.Guid, java.lang.String, java.lang.String)
每次服务调用错误,说:
处理请求时出现“”错误 无法找到带参数{11111111-1111-1111-1111-111111111111,test,JLJMHX1}的Web服务操作GetAssetInformation。“
我确信这是由于期望“com.microsoft.wsdl.types.Guid”数据类型的方法,但我如何通过ColdFusion传递它?
我可以使用相同的数据在Fiddler中创建和运行请求,并在没有问题的情况下得到回复,因此我在ColdFusion中做错了。
任何帮助都将不胜感激。
答案 0 :(得分:3)
该方法需要一个guid和两个字符串。你正在传递一个结构。分别传递参数。
ColdFusion 10默认还为Web服务引入了Axis 2。对于某些Web服务,您需要使用可在ColdFusion Administrator中启用的Axis 1。您还需要刷新Web服务。
createObject("webservice", theURL, {refreshWSDL=true,wsVersion=1})
答案 1 :(得分:0)