2012-05-14 3 views
1

私は、作成しようとしているプロジェクトに有線がつながっていることを認識しています。私はRestTemplateを使用しています。私はサーバーに接続してデータを取得しようとしています。複数のコントローラクラスでプログラムを壊すことに決めた頃まで、すべてはうまくいった。私が何をしたかを見てください。私はそれらの一つ一つに挿入し、これらの新しいクラスのそれぞれで:RestTemplate「適切でないHttpMessageConverter」

RestTemplate restTemplate= new RestTemplate(); 

データを取得するために、私は(データバインディングのため)だけJAXB注釈を使用していると私は私が欲しいものは何でも取り出すことができます。私はこの例外を取っている

ResponseEntity<AClass> result = restTemplate.exchange("url", 
         HttpMethod.GET, entity, AClass.class); 

::私は新しいクラスでのコード行を実行しようとしているときでもRestClientExceptionが「応答を抽出できませんでした:なしHttpMessageConverter、適切な応答タイプが見つかり[AClassはありません]とコンテンツtype [application/xml] "

前のクラスに戻すと問題なく実行できます。本当に私はなぜそれを理解していない。おそらく私は新しいクラスで新しいRestTemplateを使用しているからです。私は別のRestTemplatesを宣言し、このように宣言しようとします:@Autowiredしかし問題は残っています。また、ディスパッチャーサーブレットで何か新しいものを宣言する必要がありますか?また、オブジェクトrestTemplate(RestTemplate restTemplate = new RestTemplate())を多くのクラスで呼び出すことができます。特定のクラスでそれを宣言し、そこから呼び出す必要がありますか?私は何をすべきですか?私はあなたの提案を期待しています。

答えて

0

以前にrestTemplateインスタンスを設定しましたか? をRestTemplateインスタンスに登録するか、XMLを非整列化する方法がわかりません。このようなもの:

Jaxb2Marshaller jaxbMarshaller = new Jaxb2Marshaller(); 
// Make sure context paths includes AClass's package 
jaxbMarshaller.setContextPaths("com.example.generated"); 
MarshallingHttpMessageConverter converter = new 
    MarshallingHttpMessageConverter(jaxbMarshaller, jaxbMarshaller); 
restTemplate.setMessageConverters(Arrays.<HttpMessageConverter<?>> asList(converter)); 
関連する問題