1

xmlを取得するために、restTemplateを介してサーバー側に接続しようとしています。しかし、RestClientExceptionが発生し、次のメッセージが表示されます:「応答を抽出できませんでした:応答タイプ[frontend.model.Registration]およびコンテンツタイプ[application / xml]に適したHttpMessageConverterが見つかりません」ディスパッチャーサーボレットに次のように記述します:

<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を追加しようと思っています。誰かが試すことを提案できますか?disptcherサーブレットに何かを追加する必要がありますか?ライブラリを追加する必要がありますか?私のモデルクラスはpojoで、jaxbアノテーションが含まれています。

4

1 に答える 1

2

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

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
        </list>
    </property>
</bean>

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

編集: RestTemplate を呼び出すクラスで、次のようなフィールドを追加します。

@Inject
private RestTemplate restTemplate;
于 2012-05-11T00:26:04.520 に答える