2

カールIDの長さを使用してテストできるRESTリソースにアクセスしようとしています。たとえば、「12345」のようにIDの長さが11未満の場合、IDの長さは11文字である必要があり ますhttps://somesite.com:7677/something/id/ { id} iamは、Javaコードとcurlから404HTTPエラーを取得しています。これは期待どおりです。

idの長さが11に等しく、それが無効なidである場合、iamはcurlとjavaから同じ応答を取得します

しかし、curlによってすでに存在する有効なIDを指定すると、適切なjson応答が得られますが、iamがrestTemplateからRestリソースにアクセスしようとすると、次のようなエラーが表示されます。

クライアントから送信された要求は構文的に正しくありませんでした()。このリクエストのエラーログはありません

私は過去2日間からそれを理解することができません、それが私にとって本当に完全に役立つように、これについてあなたの考えを提供してください私の残りのテンプレート構成:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
        <property name="messageConverters">
            <list>
                <ref bean="jsonHttpMessageConverter" />
            </list>
        </property>
    </bean>

iamがアクセスしようとしているコード

public List<Account> getAccounts(PersonNumber personNumber) {
        logger.warn("Inside getAccounts of TransferAgreement client");

        String url = "https://somesite.com:7677/something/id/12345";
        logger.warn("URL acessing "+personNumber.toString()+"  URL  "+ url);
       String a = restTemplate.getForObject(url, String.class);
       System.out.println(a);
        return null;
    }
4

2 に答える 2

4

Eclipseを使用していると仮定します。

Springのロギングを有効にする

  • Springのデバッグまたはトレースにログレベルを設定します。ログを参照してください。
  • Javaの例を実行する
  • ロギング出力を投稿に追加します

ロギングを有効にするだけで十分だと思います。Spring内で例外が発生することを期待しています。ただし、さらに、要求が実行されるかどうかをテストします。

  • プロキシを設定します。how -to-trace-soap-message-in-eclipse-ideを参照してください。RESTかSOAPかは関係ありません。これは、TCP/IPモニターです。
  • カールの例を実行します
  • Javaの例を実行する
  • 両方のリクエストを投稿に追加します
于 2012-04-25T13:04:32.200 に答える
0

Spring コードにデバッグ ブレークポイントを設定できるように、開発環境をセットアップできますか? その場合は、AbstractHttpMessageConverter.write() の最後の行にブレークポイントを設定できます。デバッガーがアプリをブレークポイントで一時停止したときに Java 式を評価できると仮定すると、outputMessage.toString() の結果を取得し、それを IDE からコピーして、テキスト エディターに貼り付ける必要があります。これにより、RestTemplate が送信している JSON が表示されるので、curl 経由で送信しているものとまったく同じであることを確認できます。

于 2012-04-25T21:46:15.977 に答える