Web サービスのリフレッシュ
Nov 28th, 2003 by Gus
ColdFusion MX では cfinvoke タグを使って Web サービスを簡単に呼び出すことができるのですが、裏では Axis の Java のモジュールを使って、WSDL から Java Proxy を生成しています。一度生成すれば後はそれを使い回しするようになっています。便利なんですが、一つ困ったことが Web サービスのインターフェースが変更され、WSDL が更新されていると古いプロキシが使えないので、CFAdmin へログインし、Web サービスのメニューから目的の Web サービスをリフレッシュしなくてはなりません。CF Admin にアクセスできない環境や、開発中などは結高゚んどくさいもの。CFML で同じことができたらということで、下記の Snippet を紹介します。
<cfobject type="JAVA"
action="Create"
name="factory"
class="coldfusion.server.ServiceFactory">
<cfset RpcService = factory.XmlRpcService>
<cfset RpcService.refreshWebService("http://www.mycompany-name.com/MX/components/dude.cfc?wsdl")>
refreshWebService() メャbドにリフレッシュしたい Web サービスのURL を指定すれば新しい Java Proxy を生成してくれます。