0

サーバー側に Oracle 11g と Apex を使用した REST Web サービスがあります。クライアント側では、Android 向けに開発を行っており、Spring 1.0.1 および Jackson 2.2.3 ライブラリを使用して残りの Web サービスのリクエストを管理し、json データを pojo に変換します。

Webサービスが「クエリ」の場合、非常にうまく機能します。resultset-Json データは問題なく Pojo の配列に変換されます。しかし、オラクルの手順で同じことをしようとすると、例外が発生して失敗します。

プロシージャによって返される Json データは次のとおりです。

{"item":"{\r\n  \"user\" : \"{john}\",\r\n  \"profile\" : \"nothing\"\r\n}"}

オンライン Json バリデーターを試しましたが、Json データは有効なようです。ヘッダーでは、タイプが「application/json」であることも確認できます。

pojo オブジェクトは次のとおりです。

   public class User {

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    private String user;

    public String getProfile() {
        return profile;
    }

    public void setProfile(String profile) {
        this.profile = profile;
    }

    private String profile;
}

Web サービスを呼び出し、json を pojo に変換しようとするコードは次のとおりです (Spring の例からコピー)。

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
User users = restTemplate.getForObject(url, User.class);

最後に、「getForObject」を実行しようとしたときの例外:

org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [com.xxx.xxx] and content type [text/plain;charset=iso-8859-1]

Jackson ライブラリの代わりに Gson ライブラリで同じことをしようとしましたが、同じ例外が trown です。数日前からブロックされてます…

何か案は?私が間違っていることは何ですか?

前もって感謝します、

4

1 に答える 1