GeOAPに記載されている、メソッドを使うのに、引数にunsignedByte型を必要とするものがありました。(StraightDistanceOfAdrToStationメソッドなど)
ここで問題になるのは、ColdFusionには、unsignedByteという型が存在しないということ。
なので、unsignedByte型を引数にとるメソッドは呼び出せないのかなと思うのですが、前にも書いたように、ColdFusionは、Javaで実装されているので、おそらくできるだろうと予想。
案の定、ぐぐってみると、UnsignedByte型は、javaのshort型変数に対応していると、ここに書かれていました。
上の記事は、internet.comの記事なのですが、axisのサイトを見てみると、UnsignedByte型は、javaのlong型に対応していると書かれていました。
というわけで、ColdFusionで、UnsignedByte型を引数に取るメソッドを呼び出したい場合、
<cfscript> //webserviceの呼び出しと共にオブジェクトを生成 ws = CreateObject("webservice","呼び出し先のurl"); //Longクラスをコール jo = createobject("java","java.lang.Long"); //引数をLong型にデコード jo = jo.decode("数字"); //UnsignedByteクラスをコール ju = createobject("java","org.apache.axis.types.UnsignedByte"); //Long型のjoをUnsignedByte型に変換しオブジェクト(ju)にセット ju.setValue(jo); //メソッドをコール ret = ws.メソッド(UnsignedByte型の引数 = ju); </cfscript> |
という流れでいけると思います。
これで、引数の型が、UnsignedByte型でも怖くないぞと。
うーん、時間があったら、ここのサービスの使い方とかも書いてもいいかもなー。
0 コメント:
コメントを投稿