0

エンドポイントとを使用して単純なHTTPサービスを設定しました。これは、XML応答を提供します。サービスに対してJUnitテストを実行しています。以下のコードからの抜粋です。getMessageBodyは、バッファリングされたリーダーを使用してファイルを文字列に変換します。

文字列src=getMessageBody(xmlname);

        MockEndpoint mock = this.context.getEndpoint("mock:resultsCheck",MockEndpoint.class);
        mock.expectedMessageCount(2);

        LOG.info(".. get response object");
        Object responseBody1 = this.template.requestBody("cxf://bean:Port",src);
        String responseBody2 = this.template.requestBody("cxf://bean:Port",src, String.class);

問題は、次の行です。

オブジェクトresponseBody1=this.template.requestBody( "cxf:// bean:Port"、src);

正常に動作し、入力されたオブジェクトを返します。

この行はnullを返しますが、理由はわかりません。

文字列responseBody2=this.template.requestBody( "cxf:// bean:Port"、src、String.class);

何か案は?

- 編集 -

もう少し調べてみましたが、型変換に問題があるようです。タイプorg.apache.cxf.bus.spring.SpringBusからorg.apache.camel.Componentへの適切な変換が見つかりません

これを修正するにはどうすればよいですか?

4

1 に答える 1

0

2 回目の呼び出しで、CXF Web サービスは空でない応答を返しますか?

最初の呼び出しをコメントアウトして、2 番目の呼び出しのみを実行し、応答が得られるかどうかを確認できます。

また、最初の呼び出しから返されるオブジェクトの型は何ですか。そして、そのtoStringメソッドを実行すると、nullが返ってきますか?

于 2013-01-24T08:03:26.447 に答える