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 かはわかりません。