@Leigh からのコメントと少し Google を読んだ後、ColdFusion Web サービスのデバッグに関する次の記事を見つけました。この質問 (および @Leigh が参照していたもの) で特に興味深いのは、番号 2 の下 (ページの下部に向かって) の箇条書き項目です。参照されたページが削除された場合に備えて、その情報をここに含めます。
引数の型としてまたはを指定java.lang.IllegalArgumentException: argument type mismatch
して .Net Web サービスを呼び出すのに時間がかかる場合は、データ型を正しく定義していない可能性があります。andは、.Net が配列を予期していると信じ込ませるでしょう。ただし、ColdFusion 配列は .Net 配列と同じではないことに注意してください。wsdl を注意深く見ると、が complexType 名として定義されていることがわかります。ArrayOfInt
ArrayOfString
ArrayOfInt
ArrayOfString
ArrayOfInt
<s:complexType name="ArrayOfInt">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="int" type="s:int" />
</s:sequence>
</s:complexType>
また、CF の複合型は構造体にマップされます。さらに、この複合型には name="int" の要素があることがわかります。Java が wsdl を参照してスタブ クラス ファイルを作成すると、この要素の名前が「_int」に変更されます。「int」はJavaの予約語であり、ネイティブデータ型でもあるため、これを行っていると思います。つまり、.Net Web サービスを正常に呼び出すには、次のものが必要です。
<cfset objGroupIds = StructNew()>
<cfset objGroupIds._int = ListToArray("627303")>
<cfset callResult = myObj.getUser(objGroupIds)>