是否可以使用 JavaLoader 获取由 CF 调用的 Web 服务返回的对象,并且 JavaLoader 加载的对象是相同的类路径上下文?我的意思是,没有很多困难?
// get a web service
ws = createObject("webservice", local.lms.wsurl);
// user created by coldfusion
user = ws.GenerateUserObject();
/* user status created by java loader.
** this api provider requires that you move the stubs
** (generated when hitting the wsdl from CF for the first time)
** to the classpath.
** this is one of the stubs/classes that gets called from that.
*/
UserStatus = javaLoader.create("com.geolearning.geonext.webservices.Status");
// set user status: classpath context clash
user.setStatus(UserStatus.Active);
错误:
- 详细信息:要么没有具有指定方法名称和参数类型的方法,要么 setStatus 方法被 ColdFusion 无法可靠破译的参数类型重载。ColdFusion 找到 0 个与提供的参数匹配的方法。如果这是一个 Java 对象并且您验证了该方法存在,请使用 javacast 函数来减少歧义。
- 消息:未找到 setStatus 方法。
- 方法名 setStatus
即使从表面上看,该调用与用户上的方法签名匹配——setStatus(com.geolearning.geonext.webservices.Status)——该类位于不同的类路径上下文中。这就是为什么我得到上面的错误。