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);
エラー:
- 詳細: 指定されたメソッド名と引数の型を持つメソッドがないか、ColdFusion が確実に解読できない引数の型で setStatus メソッドがオーバーロードされています。指定された引数に一致するメソッドが 0 個見つかりました。これが Java オブジェクトであり、メソッドが存在することを確認した場合は、javacast 関数を使用してあいまいさを減らします。
- メッセージ: setStatus メソッドが見つかりませんでした。
- MethodName setStatus
呼び出しは表面的にはユーザーのメソッド シグネチャと一致しますが、setStatus(com.geolearning.geonext.webservices.Status) ですが、クラスは別のクラスパス コンテキストにあります。そのため、上記のエラーが発生します。