問題タブ [spring-web]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - JsonView / MappingJacksonValue を使用したスプリング レスト コントローラーの結果のラッピング
ユーザーが次のようにビューパラメーターを使用して各呼び出しの JsonView を指定できるようにする Spring API があります。
次に、Spring の MappingJacksonValue を使用して、アノテーションを使用する代わりに正しいビューを動的に設定し@JsonView()
、最後に、次の行に沿って何かを生成する MappingJacksonValue インスタンスを返します。
上記のスニペットからすべての API の結果をこれに変更できるように、MappingJacksonValue インスタンスを ObjectNode に簡単にラップする方法を理解することはできません。
通常の HashMap<> を使用してみましたが、うまくいきませんでした - シリアル化は MappingJacksonValue ビューを完全に無視し、マップ固有の結果も生成します
それで、誰かが私のシナリオで結果のラッピングを達成するための最良の方法を教えてもらえますか?
前もって感謝します!
java - Spring RestTemplate および List のようなジェネリック型 ParameterizedTypeReference コレクション
抽象コントローラー クラスには、REST からのオブジェクトのリストが必要です。Spring RestTemplate を使用している間、それを必要なクラスにマッピングせず、代わりに Linked HashMAP を返します
私が使用する場合、
それは正常に動作します。しかし、すべてのサブクラス、他のソリューションを入れることはできません。
java - Spring MVC Maven Jar Hell : タイプ「ExtendedMappingJacksonJsonView」の階層に一貫性がありません
このエラーを修正するためにできる限りのことを行い、pom ファイルにいくつかの除外を追加しましたが、それでもこのエラーが発生する理由を理解できません。
pom.xml
このエラーが発生するコード
EDIT : 依存関係ツリーの出力
編集 2:重要なことに言及するのを忘れていました。Maven リポジトリは使用していませんが、代わりに独自のプライベート リポジトリを使用しています。すべての jar をダウンロードし、リポジトリにインポートしました。mvn clean -U install
エラーがないかどうかを確認して修正するために繰り返し実行しました。
答えてくれてありがとう。早く終わらせないといけないので、JAX-RSではなくSpring WSを使うことにしました!Spring REST WS はすでに動作しているため、さらに使用することにしました。私の組織だけがプライベート リポジトリを使用するという考えを捨てていれば、私はこの混乱に巻き込まれることはなかったでしょう。
spring - Tomcat が組み込まれた Spring WebApplicationInitializer (ServletContainerInitializer、@HandlesTypes)
次の最小プロジェクトで、WebApplicationInitializer
Eclipse および IntelliJ 内でテストを実行すると Spring のインターフェースの実装が検出されるのに、Maven を使用すると検出されない理由がわかりません ( mvn clean test
)。
Eclipse と IntelIJ を使用するとわかりますINFO: Spring WebApplicationInitializers detected on classpath: [com.example.pack.DummyInitializer@26d678a4]
mvn clean test
なるほどINFO: No Spring WebApplicationInitializer types detected on classpath
。_
テストでは、埋め込み Tomcat を起動します。
は、新しい (そして空の) を作成する実装をweb.xml
参照します。ServletContextListener
AnnotationConfigWebApplicationContext
サンプル プロジェクトを GitHub にアップロードしました: https://github.com/C-Otto/webapplicationinitializer
jetty - WebApplicationInitializer を使用して組み込み Jetty を開始する
Fuse 6.2.1 にデプロイする Restful (Jax-RS) サービスを作成しています。(Apache CFX を使用し、OSGi バンドルを使用して Karaf にデプロイします) サーバーは Spring 3.2.12.RELEASE までのみをサポートします。私はゼロに近い XML 構成ですべてを実行しようとしています。
これまでのところ、すべてがうまく機能しており、サービスを展開して実行できます。
ただし、サービスをデプロイせずにローカルでテストできるようにしたいと考えています。だから、ウェブサーバーをブーストしてサーブレットを登録できるようにしたいのですが、どうすればよいのかわかりません。
これでサーブレットを構成しています(web.xmlではなくSpringのWebApplicationInitializerを使用):
}
そして、私の主なSpring設定は次のようになります:
明確にするために、上記のコードは私の現在の動作中の展開可能な構成です。だから今、同じものを利用するテスト構成を作成したいと思いますが、Jetty を起動してサーブレットを登録しますが、その方法がわかりません。何か助けはありますか?ありがとう!
編集:これを機能させるために WebApplicationInitializer をまったく必要としなかったことがわかりました。最終的に、Jetty サーバーを Bean として定義する Spring のテスト構成を作成しました。うまくいくようです:
rest - Spring data rest では、ネストされた @OneToMany オブジェクトを POST /parent/{parentId}/nested? を介して親に追加できます。
親オブジェクトとネストされたオブジェクトがあります。ネストされたリストを取得できますが、GET /parent/{parentId}/nested
POST/PUT を成功させることはできません。POST の結果で HTTP 204 を取得し、親にはネストされたオブジェクトの空のリストがあります。
ログを見ると、Hibernate は DB に何も挿入していません。デバッグ中に、デシリアライゼーション用の Jackson Object Mapper が JavaTypeorg.springframework.hateoas.Resources<java.lang.Object>
として " " を取得していることがわかります。
これが私のPOSTの実際の例です:
curl 'http://localhost:8000/api/users/402880e554b8f7960154b8f7adbc0000/orders/' -i -X POST -H 'Authorization: Basic OLOLO==' -H 'Accept: application/json' -H 'deviceCurrencyCode: USD' -H 'Content-Type: application/json; charset=UTF-8' -d '{"orderPrice": 0,"tax": 0,"shippingCost": 0,"credits": 0,"addresses": [{"firstName": "Figli","lastName": "Migli","zipCode": "5555","city": "Riga","country": "Tlmltr","phone": "7777","address": "Adddr"}],"status": "status"}'
できることはわかっていますPOST /nested '{"parent":"/link/to/parent"}'
。しかし、ネストされたオブジェクトを親で取得する方法である場合、なぜこの方法でそれらを POST/PUT/PATCH できないのでしょうか? 私はチェックしました、それはRESTfullですか、そうです。