2012-05-10 17 views
1

xmlを取得するためにrestTemplate経由でサーバー側に接続しようとしています。しかし、私はRestClientExceptionとこのメッセージを取っています: "レスポンスを抽出できませんでした:応答タイプ[frontend.model.Registration]とコンテンツタイプ[application/xml]に適切なHttpMessageConverterが見つかりません" ディスパッチャサーブレットで、RestClientException応答スプリングを抽出できませんでしたmvc

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
<property name="mediaTypes"> 
    <map> 
     <entry key="xml" value="application/xml"/> 
     <entry key="atom" value="application/atom+xml"/> 
     <entry key="html" value="text/html"/> 
    </map> 
</property> 
<property name="viewResolvers"> 
    <list> 
     <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/> 
    </list> 
</property> 

、その後、私はこれを追加します。

<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/> 

も例外では、この行に表示されます:3

ResponseEntity<Registration> result = restTemplate.exchange("http://www.../ckp/user/{id}", 
        HttpMethod.GET, entity, Registration.class, id); 

私は今問題の日を解決することはできません。私はViewResolerとMessageConverterを追加することを考えています。どのリゾルバとどのコンバータがわからないのですか?誰かが何か試してみることができますか? ディスパッチャサーブレットに何かを追加する必要がありますか?ライブラリを追加する必要がありますか? 私のモデルクラスはpojoのjaxbアノテーションを含んでいます。

答えて

2

xmlメッセージコンバータBeanをRestTemplate Bean定義に追加する必要があります。これは私が使用するものです。

​​

は(XMLまたは注釈を経由して)あなたのクラスにrestTemplate Beanを注入することを忘れないでください。

EDIT:あなたはRestTemplateを呼び出すクラスでは、このようにフィールドを追加します。

@Inject 
private RestTemplate restTemplate; 
+0

は、あなたの応答をありがとう、あなたがクラスを注入するために何を意味するか申し訳ありませんが、私は初心者です!?。さらに、私はこれをサポートするために新しいライブラリを追加する必要がありますか? –

+0

あなたは私に事例を教えていただけますか?もう1つの質問は、私はアプリケーション/ xmlに必要ですか? –

+0

はい、XML Webサービスの使用のみに興味がある場合は、コンバーターが必要です。回答の編集を参照してください。 @Autowiredアノテーション(javax.inject.InjectのSpring相当)を使用することができます。 – nickdos

関連する問題