問題タブ [spring-boot]

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.

0 投票する
4 に答える
36151 参照

java - TomcatがSpring-Bootアプリケーションのプロパティを読み取らない

私はSpring/Javaにかなり慣れていないので、仕事中のプロジェクトのためにspring-bootをチェックしています。私はガイドに従ってきましたが、最終的にデータアクセス用の (半) 動作する Web アプリ MVC + JPA を手に入れました。Jar メソッドを使用してアプリをデプロイすると、すべてが機能します。

ただし、アプリケーションは最終的に Tomcat (v7.0.40) にデプロイされるため、プロジェクトから war ファイルを作成する必要があります。spring.io サイトでjar を war に変換するガイドに従っていると、問題が発生しました。application.properties ファイルをロードしていないようです。重要なコード スニペットを次に示します。

src/main/java/hello/GreetingController:

src/main/java/hello/Application.java

src/main/java/hello/HelloWebXml.java

src/main/resources/application.properties

完全を期すために、build.gradle は次のとおりです。

私はアプリケーションを構築します:

war を tomcat にドロップし、ログをテール アウトして、次を確認します。

先ほど言ったように、jar 経由で実行すると機能しますが、Tomcat にデプロイすると機能しません。私も中を見てみる$TOMCAT_HOME/webapps/client/WEB-INF/classesと、application.propertiesファイルが見えます。したがって、クラスパスにある必要があると思います。私の質問は、Tomcat がロードしないのはなぜですか? あちこち検索してみましたが、この問題を抱えている人は他にいないようですので、設定が間違っているだけなのか、何なのかわかりません。

前もって感謝します。

0 投票する
2 に答える
2216 参照

spring-mvc - Spring: WebMvcConfigurerAdapter Bean が 2 回登録されました

これは、Spring + Jackson + joda time のフォローアップの質問です: シリアライゼーション/デシリアライゼーション形式を指定する方法は? .

コードの最終バージョンを書いていたとき、初めて次のように書きました: (関連する部分のみが示されています)

Spring Boot のデフォルトの @EnableWebMvc クラスが使用されるため、@EnableWebMvc はありません。
userInterceptor Bean は、Bean でもある WebMvcConfigurerAdapter クラスにあることに注意してください。

アプリケーションを実行すると、次のエラーが発生しました:
(自分のクラスのクラス パス名が「...」に置き換えられました)

次に、ApiWebMvcConfiguration クラスを static 内部クラスに変更しました。

アプリケーションは「正常に」開始されましたが、ApiWebMvcConfiguration クラスが 2 回インスタンス化されました。つまり、「### ApiWebMvcConfiguration」が 2 回出力されました。したがって、「### addInterceptors」が 2 回出力されました。

次に、UserIntercepter のコードを実行すると、@Autowired JdbcTemplate が null のため失敗しました。つまり、@Autowired はオブジェクトに対して機能していませんでした。(JdbcTemplate は他のオブジェクトで @Autowired に成功しました)

そこで、Spring + Jackson + joda time: how to specify the serialization/deserialization format?に示すように、コードを最終バージョンに変更しました。つまり、UserIntercepter Bean が ApiWebMvcConfiguration から取り出され、問題はなくなりました。

これは正しい動作ですか?
@Bean をネストしてはいけませんか?

0 投票する
2 に答える
63248 参照

java - @EnableAutoConfiguration を追加すると、spring-boot が「スキャンする JPA パッケージが見つかりません」で失敗するのはなぜですか?

@EnableAutoConfiguration次の spring-boot アプリに を追加すると、 が作成されないのはentityManagerFactoryなぜですか? 削除すると、@EnableAutoConfigurationすべて正常に動作します。誰でもこの動作に光を当てることができますか?

根本的なエラーは

完全な出力 (スタック トレースを含む) は -

ポンポンエキス -

アドバイスをいただければ幸いです。

0 投票する
2 に答える
1679 参照

java - 春のブートとddl-autoの問題

現在、Spring MVC と JPA データを使用して web アプリを作成するために spring-boot を使用していますが、プロパティspring.jpa.hibernate.ddl-auto: createで問題が発生しています。最初の実行時にテーブル A 、 B 、 C正しく作成されます。次に、3 つのテーブルすべてにデータを入力し、アプリケーションを閉じて再実行すると、データが入力されたデータはテーブル A にのみ含まれます。

テーブル B と C は完全に消去されていますが、これは少し奇妙です。

これが事実である理由を知っている人はいますか?

依存関係として pom.xml 内に次のものがあります

spring.jpa.hibernate.ddl-auto

0 投票する
2 に答える
11561 参照

java - Spring Boot Validation は JSON で応答します

私はまだSpring全般に不慣れで、Springブートを使用しようとしています。(できれば)簡単な質問があります。JSON を返す ReSTful サービスを構築しようとしています。Building a RESTful Web Service Guideに従っていますが、JSON を正常に返すことができます。データがデータベースによって支えられるように、JPA を Web サービスに統合しました。

ここで、ユーザーがオブジェクトを作成できるルートを作成する必要があり、オブジェクトを検証したいと考えています。Validation Form Input Guideに従っていますが、Web コンテンツを提供するサービスを実際に作成しようとしているわけではありません。私が望むのは、検証エラーが発生するたびに、独自のカスタム JSON を返すことです。これまでのところ、これを実現するためのリソースを見つけることができませんでしたが、Petri の Sweet Rest API Guideに従ってみましたが、これは何度も役に立ちましたが、このシナリオではうまく機能していないようです。私はhibernate-validator:5.0.1.Final以下のために使用して休止状態にしています。

次に、私の PersonController:

これは、ガベージ JSON をこのルートに送信すると 400 が返されるという点で、最も厳密な方法で機能します。しかし、応答の本文は HTML ページであり、あまり良くありません。それで、私の質問は、検証エラーをキャッチする方法はありますか? コントローラーに以下を追加しようとしましたが、成功しませんでした:

Bad Gateway が有効な戻りコードではないことは承知していますが、例外ハンドラーが呼び出されないことを証明するためだけに使用しました。Rest サービスに POST すると、まだ 400 Bad Request + HTML が表示されます。オーバーライドできる賢明なデフォルトがあると思いますが、それがどこにあるのかわかりません。グーグルで検索してstackoverflowを検索してみましたが、うまくいきませんでした。

前もって感謝します。

アップデート

BindingResultメソッド シグネチャに a を含めるように Controller を変更すると、次のようになります。

私はそれを働かせることができます。( jasper-el jar も依存関係に追加する必要があったことに注意してください) 以前にこれを試して動作しませんでしたが、その理由は直感的ではありません。私は次の JSON で投稿していました: JSON Spec{ "id" : "foo", "age": 22, "name" : "James Bond" }に よると、これは有効な JSON です。明らかに、私の Person モデルは String "foo" を long にキャストできません。エラーが 400 であるべきかどうかについては触れませんが、私の新しい質問は次のとおりです。この 400 をキャッチするにはどうすればよいですか?

0 投票する
3 に答える
6672 参照

java - How can I add one more metric to Spring Boot?

Spring Boot has preconfigured metrics. As I know it uses http://metrics.codahale.com/ library. How can I get MetricRegistry object to add my custom metrics?

0 投票する
0 に答える
4445 参照

spring - Spring 4/Boot で Quartz スケジューラーを初期化する

Spring Bootを使用したSpring 4アプリケーションがあります-

WEBINF/web.xmlファイルはありませんが、アプリケーションの起動時にQuartz 2.2.1 スケジューラを初期化したいと考えています。ただし、QuartzInitializerServletを使用するすべての例では、 web.xmlファイルで設定を定義します。

これらの構成をアプリケーションのスタートアップ構成に追加できますか?

アップデート

spring-framework の Quartz Bean を理解したら、データストアを正しく実装して、実行の合間にジョブを復元する必要があります。

私はpostgresql + spring-data & hibernateを使用しています。この構成では、実行のたびにデータベースが再初期化されます。HSQL は、一部の「import.sql」データも再初期化します。テスト時にジョブが復元されるように、休止状態のインターフェイスを作成する必要がありますか?

0 投票する
2 に答える
16779 参照

java - spring-boot を使用した Maven モジュール

次のようなモジュールを作成して、Maven でアプリケーションを構成するのが好きです。

次に、モジュールは「example-app」を親として使用します。

ここで、Web アプリケーションに「spring-boot」を使用したいと考えています。

私の「app-web」がスプリングブートアプリケーションになるようにmavenを設定する方法はありますか?

私が直面している問題は、親として spring-boot を使用する必要があることです。

0 投票する
2 に答える
4227 参照

java - スプリング ブートと tomcat

次のことを可能にするスプリング ブート サンプルを見たいと思います。

既存のサンプルと次のチュートリアルを試しましたが、うまくいきませんでした。

0 投票する
2 に答える
3611 参照

java - Spring スターター マルチモジュール プロジェクトを使用した大きな war ファイル

私は大きなプロジェクトを持っており、いくつかの小さなモジュールで構成されています:

  • core.jar: エンティティとデータ jpa リポジトリが含まれています。spring-boot-starter-data-jpa を使用します。
  • api.jar: 残りのすべてのコントローラーが含まれ、core.jar に依存し、spring-boot-starter-web を使用します
  • web.war: エントリ ポイント。構成が含まれており、ガイドに従って実行可能な jar から war に変換します: http://spring.io/guides/gs/convert-jar-to-war/

すべてがうまく機能します。唯一の問題は、war ファイルが非常に大きく、現在のコード ベースで約 300MB を超えることです (これは非常に小さく、一部のコントローラーだけで、エンティティはほとんどありません)。調査を行ったところ、core.jar と api.jar に依存関係が含まれていることがわかりました。また、web.war にもこれらの依存関係が含まれており、彼自身の依存関係が含まれています。

とにかく、jar を構築し、依存関係なしで戦争し、本番マシンでの最初の起動時に依存関係をダウンロードできるようにする必要がありますか? または依存関係パッケージを個別に、増分展開では、全体を再アップロードする必要はありませんか?

よろしく、

更新 1:

Q: core.jar と api.jar を実行可能にする必要がありますか?

A:いいえ、必要ありませんが、includespring-boot-starter-data-jpaまたはspring-boot-starter-web

すべての私の pom.xml

私のcore.jar pom.xml

私の api.jar pom.xml

私の web.war pom.xml