SpringBoot

A collection of 9 posts

8月 6, 2018

SpringBootで Request-URI Too Large が出てしまった時のメモ

環境 SpringBoot 1.5.4 Apache 2.4 (リバースプロクシとして) 問題点 フォームをGETで送信してしまうと、(これ自体が問題なんですが) URLの文字数が1000文字を超えてしまうことがあります。その場合、題記のエラーが発生します。 本来は、アプリケーションを改修すべきですが、それまでの間に合わせとして設定変更で逃げる 場合の手法をメモします。 考え方 Request-URI Too Largeエラーを出す所は二箇所あります。 それぞれに対して設定の変更が必要です。 1. Apache 2. SpringBoot内蔵のTomcat Apacheの設定変更 http.conf に以下の行を加えます。 LimitRequestLine

5月 26, 2017

SpringbootのErrorControllerにはPOSTの処理も必要

環境 Springboot 1.3.5 Java 8 やりたかったこと アプリ内の例外を補足してエラー画面に飛ばしたかった。 ハマったこと 参考URLのスライドを参考にして、ErrorControllerを実装したところ、GETで例外が発生した 場合は、想定通りエラー処理が行われるが、POST中に例外が起きるとエラー画面どころかTomcatのエラー画面 が表示された。 対策 @RequestMapping(value = PATH) public String errorGet(HttpServletRequest request, HttpServletResponse response) { 略 } // これを追加した。 @RequestMapping(value = PATH,

5月 22, 2017

SpringBootの設定ファイルを外部化したい時

環境 SpringBoot 1.3.5 jarでデプロイ (warの場合はこの記事の対象外) どんな時に嬉しいか 開発中は、resources/application.yml を読んで欲しいが、本番時は運用者が設定ファイルを 変更する為に外だしのファイルになっていて欲しいという時。 何をするか 起動時のオプションを以下のように記述すればOK REM 適当に改行していますが、実際は一行で入力します java -jar -Dspring.config.location="c:pathmyconfig.yml" -Dspring.config.name=

5月 18, 2017

SpringBoot使ってる場合はHttpSessionを@Autowiredできる

最初に 思いっきり勘違いして大騒ぎしたのでメモ Springboot 1.3.5 問題(ではなかった)コード 結論を先に言うと、このコードは想定通り動きます。 @Controller public class MenuController { @Autowired HttpSession session; @RequestMapping(value = "/", method = RequestMethod.GET) String method() { return "somehtml"; } } 何が問題だと思ったか くどいですが、

3月 16, 2016

Springbootで@AuthenticatedPrincipalしてもnullが入る

今さっきやらかしてしまったのでメモ。 SpringSecurityの設定が間違っていると @AuthenticatedPrincipalした引数に nullが入ってしまう。 // これは間違い。 @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/mypage/**"); } // 正しくはこう書く public void configure(WebSecurity web) throws Exception { http.authorizeRequests() .antMatchers("/mypage"

2月 28, 2016

SpringBoot(1.2くらい)を使っていてハマった事

はじめに Spring Boot 1.2.5 を使いはじめてハマった事をメモします。 既にご存じかとは思いますが、以下のQiitaがとても良くまとまっているので ご紹介します。 #1.2.8でも同じようにハマれるのを確認しています SpringBoot(with Thymeleaf)チートシート[随時更新] http://qiita.com/uzresk/items/31a4585f7828c4a9334f Whitelabel Error Pageを置き換えたい エラーメッセージだけを読むと、適当なコントローラーをつくって /error のリクエストマッピングを作成すればよさそうに思えるが、 実際やってみると、マッピングが重複している的なエラーで起動すらできなくなる。

2月 27, 2016

Thymeleafメモ

HTML5的に好きな要素にThymeleafで値を埋めたい th:attrを使えば良い。 下のサンプルは適当な名前にしていますが、正式にやるときは data-attr のようにdata-を付けて下さい。 <a href="#" th:attr="myattr=myvar">test</a> myvar = "abc"のときの出力 => <a href="

8月 29, 2015

Springの@Autowiredが失敗した時のチェックポイント

前書き チェックリストは以下の通り。 上から順にチェックすると良いです。 なお、本文書は SpringBoot 1.2 ~ 1.4 の頃に書かれたものです。2.xになると少し事情が変わるかもしれません。 (2019/04/09 あまりにもそっけない文書だったので肉付け&改訂) static変数 @Autowired したいフィールドが static の場合、インジェクションされません。 staticを外しましょう。 @Component の付け忘れ @Autowired したいクラスに、 @Component がついていないと部品として認識されません。 ついてなければつけてみましょう。 ただし、