Не может использовать .NET веб-сервис в ColdFusion MX - PullRequest
1 голос
/ 07 апреля 2011

Мы пытаемся использовать веб-службу ASP.NET из нашего блока CF и сталкиваемся с нечетными проблемами.

<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 появляется следующая ошибка:

Невозможно выполнить вызов веб-службы «ImportData», поскольку 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: {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.apache.axis.message.SOAPFaultBuilder.endElement (SOAPFaultBuilder.jap.9): 16..

Я очистил веб-службы в администраторе, и они снова заполняются, но все равно ошибка.Есть идеи?!

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

Похоже, это происходит потому, что используемая версия MX работает под управлением SOAP 1.1, а ColdFusion 9 работает под управлением SOAP 1.2.(Обратите внимание на текст ошибки: Возможное несоответствие версии SOAP .)

Я не знаком с SOAP, но похоже, что есть некоторые другие различия междудва, о которых вы, возможно, захотите прочитать.Существует связанный вопрос , который предполагает, что более ранние версии CF, по крайней мере, не поддерживают (или не поддерживают) 1.2.

0 голосов
/ 10 апреля 2011

Если вы используете ColdFusion MX 6.1, вы не сможете использовать веб-службы с помощью тега cfinvoke.Инженеры Adobe / Macromedia не включали эту функциональность до CFMX 7.

Вам потребуется использовать заглушки Java.См. Эту ссылку .

. После создания заглушек вам необходимо скомпилировать их с помощью Java 1.4 (для этого можно использовать внутренний jdk ColdFusion).Затем создайте файл jar и разверните его на своем экземпляре ColdFusion, обычно ./runtime/lib/.Перезапустите ColdFusion и создайте объект, используя CFObject.Затем вызовите методы веб-службы, используя только что созданный объект Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...