在SOAP请求中使用复杂对象

时间:2014-05-09 09:40:02

标签: web-services soap coldfusion

我希望使用SOAP Web服务,该服务需要将对象作为参数传递,例如

<cfset someVariable = createObject("webservice", "http://www.example.com/webservice")>

哪个方法

someMethod(org.example.schemas._2004._07.example_api_objects.Example)

Example是一个包含许多属性,方法等的复杂对象。我可以访问Example中与ColdFusion10\cfusion\stubs\WS403970439_1\org\example\schemas._2004._07.example_api_objects相关的相关存根文件,并发现如果添加到<cfset someExample = CreateObject("java", "org.example.schemas._2004._07.example_api_objects.Exampler").init()> <cfset someVariable.someMethod(someExample)> 我可以使用以下类路径:

{{1}}

我确信我应该能够直接通过ColdFusion创建someExample对象,而无需将相关的存根文件添加到类路径中,但我无法做到这一点 - 是否有人知道这可能是怎么回事?

1 个答案:

答案 0 :(得分:1)

<cfset someExample = someVariable.getClass().getClassLoader().loadClass('org.example.schemas._2004._07.example_api_objects.Example').newInstance() />

然后只需使用someExample对象上的setter和getter来设置值......

另一种方式做得不够健壮。如果wsdl改变怎么办?