ソフラボの技術ブログスマートフォン用の表示で見るソフラボの技術ブログ仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。2019-12-28Gradle4.xから6.xで変更する依存関係の定義GradleGraldeを4.10.2から6.0.1にバージョンアップしたときに警告やエラーが出たので、そのときに変更した依存関係周りを簡単にまとめました。個人的にGradleはあまり詳しくないので、今回影響があった部分のみの記載です。詳細を知りたい方は、参考サイトをご覧ください。バージョンアップ時のエラーGradle6にしてビルド等を走らせると、lombokを使用している場合、認識されずコンパイルが通りません。いつの間にかGradleの設定方法が変わっていたので、その辺を変更します。依存関係ライブラリの依存定義に使う設定名が以下のように変わっています。「annotationProcessor」というものを使う必要があります。以下、Domaとlombokの場合です。'org.projectlombok:lombok:1.18.8'Domaの場合、追加で以下も必要です。書き方が変わっています。古い定義でもそのまま使えますが、バージョンアップ毎に非推奨の定義があり、将来的に削除されます。スムーズにバージョンアップするためにも、非推奨定義は別の定義に変更しておいた方が良いです。all」を付与すると出力されます。Form」を使って、登録後に自動で投稿する方法を紹介します。この記事では、登録フォームの設定方法は割愛し、登録後の自動登録の部分のみ説明します。以下に記載のコードを使用中のテーマにある「function.php」に追加します。フォームで使用するカスタムフィールドを定義する管理画面の投稿登録画面に登録フォームで使用するカスタムフィールドの入力欄を追加します。これを設定することで、投稿時に毎回プルダウンからカスタムフィールドを選択する手間が省かれます。投稿画面で表示するカスタムフィールドのHTMLを定義します。第2引数で独自の引数を設定することで、textareaまたはtextを生成するようにしています。投稿画面にカスタムフィールドを表示します。最後の引数に配列で独自の引数を設定することができます。Formで作成した登録フォームからデータが登録されたら、投稿するようにします。処理内容は、投稿を新規登録し、カスタムフィールドを別テーブルに登録します。C#C#でグルーピングして最大の要素を取得したかったので、試行錯誤して調べた結果、MaxではなくOrderByDescendingを使うことで実現できました。LINQは、使い慣れてないのでちょっと特殊なことをしようとするとハマって時間が取られてしまいました...。そんなんでお困りの方、ご参考に。解説すると、以下のようになります。20190103Key毎にDtが最大の要素がListに格納されています。WildFlyGlassFishで動作していたSpringBootアプリを、サーバー移管に伴いWildFlyに切り替えました。動作確認をしていくと、リソースの取得で404が返ってきて困っていました。調査すると、パスの取得方法がアプリケーション・サーバーによって異なることがあるらしく、その場合の対処方法をまとめました。4.8・アプリはWARでデプロイWilfFly上での問題の挙動GlassFishでは、アプリをWAR形式でデプロイし動作させていました。WildFlyでも同じようにして動作させていたのですが、Excelを出力する処理で、404が発生し原因を調査することにしました。GlassFishでは、次のコードで正常に動作していました。File(this.getClass().getResource(srcFullPath).getPath());このコードのままWildFlyで処理を行うと変なパスが返ってきます。getResourceで引数に「"report"」のパスを指定した場合/content/Hoge.war/WEB-INF/classes/com/test/report/いろいろと調べてみる解決しないとマズイ問題なのでめちゃくちゃ調べました。Configurations基本、英語のサイトしかヒットしないのでGoogle翻訳を駆使したり、コードから読み取ったりしてました。サイトには、「それは解決できないよ」と絶望的な回答があったり、「この方法はどう?」と試すものの的外れだったりで、困り果ててました。OverflowgetResource()でFileを取得するのではなく、getResourceAsStream()でStreamを取得して使えとのこと。this.getClass().getResourceAsStream(path);これですんなりExcelを出力できるようになりました。Tumblr広告を非表示にするもっと読むコメントを書く2018-12-12Postfixで独自ドメイン用の送信メールサーバーを構築するPostfixWebサービス等の開発でメールを送信することがあると思います。リリースにあたり独自ドメインも取得してメールを送信すると思いますが、メールサーバーを構築したり、メールボックスを契約するのは手間や費用がかかり大変です。それらのことをやらなくても、メールを受信したら転送するだけの仕組みがPostfixで可能だったので、それらについてまとめました。メール送信するにあたり、キャリアメール(docomo、au、softbank等)の送信制限対策の設定も記載しましたので、ご活用下さい。・独自ドメイン宛のメールは、Postfixで受信し、それを指定のメールアドレスにそのまま転送する・プログラムからのメール送信は、Postfixを経由してダイレクトに送信される・プログラムからのキャリアへのメール送信は、Postfixで送信間隔を考慮して送信される・プログラムからのメールは、暗号化して送信される(TLS設定をした場合)独自ドメインにSPFレコードを設定するSPFレコードとは?独自ドメインのよるメール送信が、迷惑メール扱いとならないようにドメインの設定でSPFレコードを追加します。SPFの詳細については以下のリンクを参考にして下さい。salt.iajapan.orgドメイン設定でSPFレコードを登録するSPFレコードは、ドメインを取得したサイトにいって「DNSレコード設定」等のメニューで行います。設定する値は、以下の表のようになります。上記のホスト名を指定TTLは任意の値で大丈夫です。SPFレコードが有効か確認する設定が終わったら、しばらく時間をおいて次のサイトでSPFレコードが有効になったか確認します。グリーンの表示ならOKです。/etc/postfix/virtualキャリアメールの送信制限対策の設定キャリアメールの送信制限キャリアメールの送信制限について調べたところ、表のような感じになりました。内容が古いかもしれないので、間違っている場合はご指摘頂ければうれしいです。1,000通キャリアにメールを送信する場合、独自ドメインにSPFレコードを設定することが必須となります。キャリア毎の制限に引っかかった場合、迷惑メール扱いとなり、メールが届かなくなるので注意して下さい。/etc/postfix/transportポートを開けるSMTPポート(25)を開けます。--permanent上記設定がおわったらPostfixを再起動します。postfixまとめ今回、Webサービスをリリースするときに、独自ドメインをお名前.comで取得したところ、メールボックスは別で契約しないといけないことが分かり、メール送信をどうするか悩んでいました。メールボックスを用意するのは、管理が面倒くさいので何か方法はないかと思って調べていると、Postfixだけでメール処理ができることが分かりました。構築は簡単にできたのですが、できればこれらもしない方が手間も省けるので、独自ドメインを取得するなら、メールサーバー付きのサービスで取得する方が良いと思いました。お名前.com以外にスタードメインでドメインを管理しているので、スタードメインだとメールサーバー付いてるので、そちらでメール転送設定をすれば、任意のアドレスでメールを受け取れるので手間いらずです。Tumblr広告を非表示にするもっと読むコメントを書く2018-10-04PostgreSQLでDB間でデータをコピーするPostgreSQLPostgreSQLでDB間またはスキーマー間でpd_dumpを使ってコピーを試みたものの、うまくいきませんでした。調べているとやり方はあるらしいですが、結局手間がかかり\copyの方が早いらしいのでこれで試してみました。11コピーの流れ「コピー元DB:A、コピー先DB:B」とします。各項番の説明をしていきます。1.AでCSVエクスポートターミナルで次を実行します。true);"2.Bでデータ削除ターミナルでpsqlコマンドでDBに接続し、次のSQLを流してデータを削除します。テーブル名;3.BでCSVインポートエクスポートの「to」を「from」に変えるだけです。ターミナルで次を実行します。true);"4.Bでシーケンス初期化ターミナルでpsqlコマンドでDBに接続し、次のSQLを流してシーケンスを設定します。「\copy」でデータをインポートしても、シーケンスは設定されません。「テーブルの件数+1」とすることで、次のシーケンス値になります。テーブル名),FALSE);補足パスワードの省略psqlを流すとパスワードを聞かれるので毎回入力するのは面倒です。それを省くため、ターミナル毎に次の環境変数を設定しておく便利です。PGPASSWORD=接続先DBのパスワード各一覧の取得テーブル一覧やシーケンス一覧を取得するには、ターミナルでDB接続後次のコマンドを入力します。シーケンス一覧\dsターミナルだと出力された結果で、Altキーを押しながらマウスで選択すると矩形選択になるります。テキストエディタ等に貼り付け、置換を駆使してコマンド・SQLを作成すれば作業が捗ります。SpringBoot個人的にGradleはよく分かってないので突っ込まれると回答できません。configuration」のエラーが出たら、ここの対処をすれば良いと言うわけではない点にご注意下さい。eclipse等を実行すると以下のエラーが発生する。Tumblr広告を非表示にするもっと読むコメントを書く次のページプロフィールid:shinsuke789屋号「ソフラボ」のフリーランスプログラマー。Java(SpringBoot)でWebアプリの開発をしています。リモートワークのお仕事大歓迎。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。