首页 文章

无法在ColdFusion MX中使用.NET Web服务

提问于
浏览
1

我们正试图从我们的CF盒中使用ASP.NET Web服务,并且遇到了奇怪的问题 .

<cfinvoke webservice="http://myserver.mine.com/myservice.asmx?WSDL" method="ImportData" returnvariable="ImportDataCompleted">
<cfinvokeargument name="importJobName" value="job1">
<cfinvokeargument name="force" value="false">

如果我们从版本9框中运行它,它将正常工作,但是,当我在MX上运行时,我收到以下错误:

无法执行Web服务调用“ImportData”,因为AxisFault faultCode:{http://schemas.xmlsoap.org/soap/envelope/}VersionMismatch faultSubcode:faultString:可能的SOAP版本不匹配:Envelope namespace http://www.w3 . org / 2002/12 / soap-envelope出人意料 . 期待http://schemas.xmlsoap.org/soap/envelope/ . faultActor:faultNode:faultDetail:{http://xml.apache.org/axis/}stackTrace:AxisFault faultCode:{http://schemas.xmlsoap.org/soap/envelope/}VersionMismatch faultSubcode:faultString:可能的SOAP版本不匹配:信封命名空间http://www.w3.org/2002/12/soap-envelope出乎意料 . 期待http://schemas.xmlsoap.org/soap/envelope/ . faultActor:faultNode:faultDetail:可能的SOAP版本不匹配:信封命名空间http://www.w3.org/2002/12/soap-envelope出乎意料 . 期待http://schemas.xmlsoap.org/soap/envelope/ . org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)位于org.ap的org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)...

我已经清除了管理员中的Web服务,他们确实重新填充,但仍然是错误 . 有任何想法吗?!

2 回答

  • 2

    看起来这种情况正在发生,因为您使用的MX版本正在运行SOAP 1.1,而ColdFusion 9正在运行SOAP 1.2 . (请注意错误中的文本:可能的SOAP版本不匹配 . )

    我不熟悉SOAP,但看起来你可能想要阅读的内容之间有some other differences . 有一个related question表明CF的早期版本至少没有(或没有)支持1.2 .

  • 0

    如果您使用的是ColdFusion MX 6.1,则无法使用cfinvoke标记使用Web服务 . Adobe / Macromedia的工程师在CFMX 7之前没有包含该功能 .

    您将需要使用Java存根 . 见link .

    一旦创建了存根,就需要使用Java 1.4编译存根(您可以使用ColdFusion的内部jdk来完成) . 然后,创建一个jar文件并将其部署到ColdFusion实例,通常为./runtime/lib/ . 重新启动ColdFusion并使用CFObject创建对象 . 然后使用刚刚创建的Java对象调用Web服务的方法 .

相关问题