2011-07-08 22 views
0

これは私をナットにしています。スプリングコントローラが2回呼び出されています

<context:component-scan base-package="au.com.mypackage.service" /> 
<context:annotation-config /> 
<mvc:annotation-driven /> 

とシンプルなコントローラ:メッセージ・コンバータを使用する

@Controller 
public class MyController { 

    @RequestMapping(value = "/data/{id}", method=RequestMethod.GET) 
    @ResponseBody public Bean getData(@PathVariable String id) { 
     Bean bean = new Bean(); 
     bean.setSomething("hello"); 
     bean.setSomethingElse(5); 
     return bean; 
    } 

はそれが仕事だ行うには、私はちょうどこのように構成されたサーブレットコンテキスト・ファイルを使用して、簡単な春のアプリを持っています。 SoapUIからこのリクエストを提出します。

GET http://localhost:8080/spring/data/123 HTTP/1.1 

Accept-Encoding: gzip,deflate 

Accept: application/json 

User-Agent: Jakarta Commons-HttpClient/3.1 

Host: localhost:8080 

これは正常に動作しているようです。しかし、私がtomcatのログを見ると、コントローラーが2回呼び出されることがわかります。これはJSONでも問題ありません。しかし、私がXMLを要求することに変わると、それはひどく間違っています。 2番目の要求(とにかく起こってはならない)は、ソケットのクロージャなどのためにXStreamの大規模なエラーとしてトリガします。

問題の根本原因はコントローラの呼び出しです。誰がなぜこれが起こっているのか知っていますか?

+0

これは、通常、Bean \コントローラがSpringでインスタンス化/登録されている場合です。あなたのアプリケーションの設定をどうやって設定しますか?ちょうどXMLを使用するか、注釈も使用しますか? –

+0

アノテーションだけで – drekka

答えて

0

解決しました。問題はSoapUIのようだ。私はWizTools RESTClientに切り替え、ダブルコールは停止しました。 SoapUIがこれをやっていた理由は分かりませんが、最初の呼び出しが何であっても、2番目の呼び出しが常にXMLになっていたという印象を受けました。

関連する問題