0

最近、スプリング ブート アプリケーション (私の場合は Web アプリではありません) で偽のクライアントを操作しているときに、クライアントがオブジェクトを正しく逆シリアル化できないことがわかりました。同僚が私に指摘したように-HALモジュールの登録が、ヘイトの春の自動構成で@ConditionalOnWebApplicationによって条件付きで保護されていることが原因であることが判明しました

これを知ることで、これを克服するために導入できる解決策があります

  1. 登録された HAL モジュールを持つ ObjectMapper を含む偽のクライアントにデコーダーを追加できます (小さなコードですが、まだ余分な作業があります)。
  2. Web アプリケーションに変換する - これはまったく良い解決策ではなく、すぐに使えるようにするという要点で行うべきではないと感じています。

それで、これを知っている人はこれに遭遇しましたか?JPa rest リソースの偽のクライアントを持つことは有効なシナリオだと思います。

以下は、Paged であるサーバー応答の例です。以下の応答のメタデータ コンテンツが受信されたことに注意してください (結果は 1 つです) が、ページ化されたリソースのコンテンツを読み込もうとしたときに修正がないと、null/空であることが判明します

        {
        "_embedded": {
            "emails": [{
                "id": "1a5edced-c165-4209-9d1c-9549b6841d13",
                "tenantId": "a56982a6-6e12-4fe6-95d1-b735cedda2dc",
                "email": "whatever@whatever.com",
                "_links": {
                    "self": {
                        "href": "http://10.190.224.138:8086/emails/1a5edced-c165-4209-9d1c-  9549b6841d13"
                    },
                    "email": {
                        "href": "http://10.190.224.138:8086/emails/1a5edced-c165-4209-9d1c-9549b6841d13"
                    }
                }
            }]
        },
        "_links": {
            "self": {
                "href": "http://10.190.224.138:8086/emails/search/whatssss?email=whatever%40whatever.com"
            }
        },
        "page": {
            "size": 20,
            "totalElements": 1,
            "totalPages": 1,
            "number": 0
        }
    }
4

2 に答える 2

0

あなた自身が提案した最初の1つの答えは、私にとっては理にかなっています。プロジェクト内に必要な依存関係を追加して、もう一度やり直してください。うまくいくはずです。一方、2番目は本当に悪い考えのようです。ライブラリをサポートするためだけにアプリを完全に変更することは決して考えないでください。

于 2016-07-18T11:29:17.513 に答える