-1

WEBMethods 文字列リストに ArrayList を設定しようとしていますが、変数が設定されておらず、WEBMethods でエラーが発生しません。私の文字列リストが入力されていないのはなぜですか。

質問: Java から返された ArrayList が文字列リストに入力されていませんか?

コード:

   This is setting no value to the String List  -->

   listOfFileName = FindArrayListOfFiles.getMyFileList();

getMyFileList() は、ArrayList の値を Java Flow Service の文字列リストに設定していません。私の値が文字列リストに含まれていないこと以外のwebmethodsにエラーはありません。

ここに画像の説明を入力

私のリストには何も見つかりませんでした。なぜそうなのかはわかりません。

ここに画像の説明を入力

4

1 に答える 1

1

元の編集されていない質問のコードでは、 java.util.ArrayList オブジェクトに要素が追加されることはありません。

java.util.List<String> list = new java.util.ArrayList<String>();
Object[] array = list.toArray(); // array.length = 0

IDataCursor cursor = pipeline.getCursor();
IDataUtil.put(cursor, "array", array);
IDataUtil.put(cursor, "array.length", array.length);
cursor.destroy();

Designer の [Service Result] タブのスクリーンショットは、サービスListOfFileNamesによって正しく返されたことを実際に示しているため、コードの一部が機能しています。返されなかった場合、サービス結果タブにまったく表示されないため、これはわかっています。そこに記載されているということは、正しく返却されたことを意味します。

しかし、機能していないと思われる理由ListOfFileNamesは、 が長さゼロの配列であるためです。そのため、Designer には [サービスの結果] タブの右側の列に表示する値がありません。ArrayListを呼び出す前に少なくとも 1 つの要素を に追加していた場合.toArray()、Designer は結果として得られる配列の内容を表示します。

Designer のスクリーンショットで気付いたもう 1 つの問題ListOfFileNamesObject[]String[]. .toArray()これは、 を返す引数なしで使用しているためですObject[]。次のように、別のバージョンの を使用して、.toArray(T[] a)確実に がString[]返されるようにします。

java.util.List<String> list = new java.util.ArrayList<String>();
list.add("item1");
String[] array = list.toArray(new String[0]); // array.length = 1

IDataCursor cursor = pipeline.getCursor();
IDataUtil.put(cursor, "array", array);
IDataUtil.put(cursor, "array.length", array.length);
cursor.destroy();
于 2014-02-01T11:49:50.237 に答える