blueriver/MuraCMS — Issue #249: MuraProxy Call Method broken by Commit [b7912cb]
Author: danlance
Created: 2012-01-24 20:18:59+00:00
State: open

Commit [b7912cb] breaks fixes in [df4108a] for #19

Once again, remote calls to the call method (within the same CF9 instance running on OSX) always fail if args argument has required values.

Following code results in error "The getAllValues method was not found" due to args being an empty struct within the call method

```

x = structnew();
x.muraproxy = createobject("webservice","http://mura.local/muraproxy.cfc?wsdl");
x.authtoken = x.muraproxy.login("user","password","default");

x.userGetArgs = structnew();
x.userGetArgs.userID = "2b3e1cf7-9eb8-4228-907133ab121d3258";
x.userGetArgs.siteID = "default";
x.userproxycallresponse = x.muraproxy.call(serviceName="user", methodName="read", authToken=x.authtoken, args=x.userGetArgs);

```

reverting [b7912cb] - specifying type="Struct" for args argument resolves issue - args is then passed correctly.

Not sure if this is reproduceable on all platforms - but it does appear that CF cannot match a passed struct to a function argument of type any on CF 9.0.1.274733 on OSX Lion with 10.7.2 Java 1.6.0_29

Please note - due to CF's caching of WSDL, changes to this method will not appear to break until WSDL cache on calling server is cleared...

Commit [b7912cb] needs to be reverted.

If a method with an arg of type any is needed for compatibility with some other (none CF) system, maybe an alternative version of the call method could be added, to avoid (re)breaking existing integrations!?!?!?