ColdFusion реализует движок Apache Axis для своей функциональности веб-службы.
К сожалению, CF не в полной мере использует объектную модель SOAP и не позволяет
Разработчики CF «создают» различные объекты, составляющие службу (или подклассируют их).
К счастью, мы можем с этим что-то сделать. Когда вы впервые получаете доступ к WSDL,
Ось генерирует набор объектов-заглушек. Это обычные классы Java, которые содержат
геттеры и сеттеры для базовых свойств объекта. Нам нужно использовать эти
заглушки, чтобы построить наш объект.
Однако, чтобы использовать эти заглушки, нам нужно добавить их в ColdFusion
путь к классу:
Step 1) Access the WSDL in any way with coldfusion.
Step 2) Look in the CF app directory for the stubs. They are in a "subs"
directory, organized by WSDL.like:
c:\ColdFusion8\stubs\WS\WS-21028249\com\foo\bar\
Step 3) Copy everything from "com" on down into a new directory that exists in
the CF class path. or we can make one like:
c:\ColdFusion8\MyStubs\com\foo\bar\
Step 4) If you created a new directory add it to the class path.
A, open CF administrator
B. click on Server settings >> Java and JVM
C. add the path to "ColdFusion Class Path". and click submit
D. Restart CF services.
Step 5) Use them like any other java object with <CFObject /> or CreateObject()
MyObj = CreateObject("java","com.foo.bar.MyObject");
Remember that you can CFDump the object to see the available methods.
<cfdump var="#MyObj#" />
Ваш объект аккаунта ДОЛЖЕН быть в заглушках. Если вам нужно создать его по какой-то причине, вам нужно сделать это в новом файле класса Java
Обычно при работе с таким большим количеством Java cfscript - это путь.
наконец, код будет выглядеть так:
<cfscript>
// create the web service
ArgStruct = StructNew();
ArgStruct.refreshWSDL = True;
ArgStruct.username = 'TestUserAccount';
ArgStruct.password = 'MyP@ssw0r3';
ws = createObject("webservice", "http://localhost/services.asmx?WSDL",ArgStruct);
account = CreateObject("java","com.foo.bar.Account");
account.SetBaz("hello world");
ws.Update(account);
</cfscript>