0

XML を返す REST Web サービスを使用するジャージー クライアント プログラムを作成しました。

Client client = Client.create();
WebResource webResource = client.resource("http://xyz:abc/myRestservice/getval");

webResource get メソッドを使用して、戻り値を文字列変数に格納します。

String s = webResource.get(String.class);

エラーは発生しません。ただし、変数「s」は出力として null を示します。

System.out.println("- "+s);

出力:

- 
Process exited with exit code 0.

同じWebサービスをローカルで(クライアント・プログラムなしでJDeveloper IDEを使用して)テストすると、値が返されます。


アップデート:

Web サービス プログラムの例外 (後述) により、変数 "s" が null を示していることがわかりました。

Web サービス プログラムは、不透明 (OracleTypes.OPAQUE) 変数を使用して、格納された関数から取得した XMLTYPE 値を ORACLE データベースに格納します。次に、キャストを使用して不透明変数を新しい XMLType に割り当てます。これは、JDeveloper IDEの内部WebLogicサーバーでのテスト中に何らかの形で機能します。しかし、この Web サービスをリモート Weblogic サーバーにデプロイし、クライアント プログラムを使用して使用しようとすると、うまくいきません。「oracle.sql.OPAQUE は oracle.xdb.XMLType にキャストできません」という例外が発生します。

ほとんどの場合、リモート weblogic サーバーで Jar が欠落しているためだと思いますが、どの jar かはわかりません。

4

1 に答える 1