タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

Java

【Payara】 外部サーバ更新により、パブリックSSL証明書をインポートした話

運用中の業務アプリにおいて、外部サーバと連携しているものがあったのですが、 先月、その機能が突然、例外を吐き出すようになってしまったのです。 Caused by: com.sun.xml.ws.client.ClientTransportException: HTTPトランスポート・エラー : javax.net.s…

【AS400】SQL更新を含むストアド・プロシージャ

今週、久しぶりにAS400でストアド・プロシージャを定義しました。 これまでは、シンプルRPGLEをストアド化するばかりでしたが、今回はSQLRPGLEをストアド化してみたのです。 そこでの学びをまとめておきます。 まず、今回発生したエラーについてのJOBJOGの中…

【Dozer】特定のフィールドを除外してマッピングしたい

先日、私が行った検証です。 上記のような2つのクラス間で、フィールド1, 2, 4(赤字)だけ複写して、複写先ClassDestのフィールド3については元の値を生かしたいという動作を実現させたかったのでした。 Javaマッピングフレームワークはお馴染みのDozerを…

【VS Code】Java Mavenを試す

JJUGナイトセミナー「開発環境の最前線」を視聴させていただき、何か前進しないといけない気持ちになり、ようやく VS CodeでJavaを試してみることにしました。 下記は、今回私が試した手順になります。 動作環境 Window10 Pro 21H1 64bit MS Open JDK11 Mave…

JDBC と Mybatis でバッチ処理

大量のSQLを発行して、レコードを追加したり、更新したりするケースは多くの場面で遭遇すると思います。 JDBC と Mybatis、それぞれのバッチ処理のサンプルを書いてみました。 JDBCでの実装 RDBはAS400で、jt400を使ってアクセスします。 compile 'net.sf.jt…

【gradle - Java】Jenkinsでビルドができない

先週のことでした。 久しぶりにJavaの「コンソール・アプリケーション」をメンテナンスすることになりました。 コードを書き終え、まずはローカル開発環境でのgradleビルドを実施。 まったく問題なく成功!! メンバーによるプル・リクエストも合格し、Jenki…

「JJUG CCC 2020 Fall」に参加しました(2020/11/07) #jjug_ccc

2020 Springもオンラインだったとはいえ、数多くのセッションが聴ける形でのオンラインは今回が初。 息子らのスポ少(野球)の練習を休んで、JJUGに臨みました。 ccc2020fall.java-users.jp 毎回、同じことを書いている気がしますが、国内外の一流の方のノウ…

Jenkins上での環境変数の使い方

今週は、手短にまいります。 Javaのアプリケーションの中で、システム環境変数を使っている場合、 そのアプリをJenkins上でデプロイを実行すると、エラーになってしまいました。 ちなみにビルドツールは、gradle です。 > Task :clean > Task :compileJava >…

【Payara】3rdParty製のJarファイルを外部参照して使用する

このたび、3rdParty製のJarファイルを使う機会がありました。 使用条件としては、独自のwarやjarに格納せずに、クラスパスを通して使用すること。 つまり、サードパーティ製のjarを管理できるNexusなどは使えない!! 既存のwar内に取り込めないため、何とか…

【Payara】System.getenvで環境変数を取得する方法

前回、Javaで環境変数を参照する方法を記事にまとめました。 tigertaizo.hatenablog.com その流れで、Payara ServerでもLinuxに登録した環境変数をアクセスしようと試したところ、NPE(ヌルポ)が発生してしまいました!! なぜ??? 今回、メンバーに調査…

【Java】機密情報を環境変数で取り扱う

GitHubにPrivate格納ができるようになってきたとはいえ、プラットフォームのリポジトリに機密情報を預けるのが、どうも苦手でした。 苦手というより、もし万が一漏洩してしまったら、「超大変」でかつ「超危険」ということです。 ハッシュ関数でハッシュ化し…

【Mybatis】DBアクセス速度改善(DBセッション制御)

Mybatisを実装したJavaのコンソールアプリ開発を行っています。 RDBは、DB2 for i(旧AS400)。 CSVやEXCELファイルの大量のデータを裁かなければならないケースも多く、その場合、処理時間が長くなってしまいがちです。 これまでのやり方は、ACSのデータ転…

【Java】Java独自共通ライブラリーのログ書き出し問題についてのその後

前回、「Java共通ライブラリー内でSLF4J+logbackを使ってハマったこと」という内容の記事を書きました。 tigertaizo.hatenablog.com その時は、「SLF4J: Class path contains multiple SLF4J bindings.」や「Resource [logback.xml] occurs multiple times o…

【Mybatis】DBのCHARの値をtrim化して取得する(resultMapの場合)

またもMybatisネタです。 前回、DBのCHARの値をtrim化して取得する方法を書いたのですが、SELECT句の結果タイプがresultTypeだったため、TypeHandlerを使って trim処理をラップする方法が使えました。 tigertaizo.hatenablog.com しかし今回は、SELECT句の結…

【Mybatis】DBのCHARの値をtrim化して取得する(resultTypeの場合)

先週に続いて、Mybatisネタです。 3年半前に自分が書いた記事では、何ともおダサい方法で、トリム化を行っていました。 「(4) CHARフィールドのトリムがされない」の部分です。 tigertaizo.hatenablog.com 当時、Mybatisの勉強を始めたばかりだったとはいえ…

【Mybatis】Java共通ライブラリーとJavaアプリの両方でMybatisを使う

背景 前回に引き続き、オリジナルのJava共通ライブラリーとその共通ライブラリーを含んだ親Javaアプリで検証したときの話です。 今回の発端は、「RDBのシステム系マスタを参照する程度であれば、共通ライブラリーに入れてしまって楽をしよう!」ということで…

【Java】Java共通ライブラリー内でSLF4J+logbackを使ってハマったこと

組織独自のユーティリティ系のJava共通ライブラリを使って、開発を行っているのですが、そのJavaライブラリー内でのロギングでハマったことをまとめておこうと思います。 2つありました。 (1)SLF4J: Class path contains multiple SLF4J bindings. Main…

【Java, Opencsv】MoneyForwardクラウド会計 インポート用CSVファイル作成

クラウド会計、盛り上がっていますね! 競争激化でユーザーサイドとしては嬉しい限りです。 クラウド会計へ移行するにあたり、重要になってくるのが現行システムからの仕訳の移行処理。 たいてい、CSVファイルやEXCELファイルをインポートする形だと思います…

「JJUG CCC 2019 Fall」に行ってきました #jjug_ccc

JJUG(日本Javaユーザーグループ)は、2015春、2016春、2016秋、2017春、2018秋と参加させていただきました。 もう過去5回も参加していたのですね。 1年に最低1回は参加できていることが何より嬉しい! さて2019年は、春のイベントは、子どもたちの運動会…

文字化け対策(Java AP Server → AS400)

AS400内のアプリは、5250エミュレータで接続することで操作可能になりますが、AS400の外にApplication Server(Web, Java)を立て、AS400(DB2 for i)をDB Serverで運用する場合、JDBCドライバーを使って、Web・DB間のやり取りを行うようになります。 この…

「JJUG CCC 2018 Fall」に行ってきました #jjug_ccc

15年春の初回参加から早3年半。今回で5回目の参加のJJUG。 過去に参加したJJUG 2015 Spring 2016 Spring 2016 Fall 2017 Spring これまでは、開発で使えそうなツール(サービスやライブラリーなど)を仕入れて、比較的に使えそうなものからチームにJoin…

【NetBeans】文字コードの設定

PC移行に伴い、NetBeansを新たにセットアップしたのですが、文字化けに苦しんだので、現時点で上手くいった設定を記録しておこうと思います。 私の環境(2017-06-29) OS: Windows10 Pro x64 anniversary update Java: 1.8.0_112 NetBeans: 8.2 Maven: 3.0.5…

「JJUG CCC 2017 Spring」に行ってきました #jjug_ccc

2017年5月20日にJJUGに行ってきました。 トータルこれで4回目。2016年春からは3回連続で参加させていただいております。 今回はJava基本的なコーディング力とDB関連の技術情報を得ることが目的。 毎回、JJUGのあとは、何か新しいことを取り入れているので、…

Payara Serverアップグレードを試す

Java EE Advent Calendar 2016の16日目です。 昨日の記事は @khasunumaさんの「JavaFX から Payara Micro API を呼び出す際の注意点」でした。 明日は@backpaper0@githubさんです。 今回のゴール 目的 作業手順 (1) JDKアップグレード ①JDKダウンロード ②JDK…

「JJUG CCC 2016 Fall」に行ってきました #jjug_ccc

日付を跨いでしまいましたが(長州力に「跨ぐなよ!、おいコラ!」と恫喝してもらいたい)、昨日、新宿で行われたJJUGに行ってきました。 2015年春、2016年春に続いて3回目。急で強引な参加になってしまいましたが、Javaエンジニア力アップのためにも、チー…

はじめてのMybatis(with AS400)

概要 実行環境 はまったこと (1) ライブラリーリストが機能しない (2) resultMapのcolumn値でピリオド付きフィールドが使えない (3) 最初のN行のみの選択したい場合にN値をパラメータで渡せない (4) CHARフィールドのトリムがされない 概要 O/Rマッパーで…

「JJUG CCC 2016 Spring」に行ってきました

昨年同様、「JJUG CCC 2016 Spring(5月21日開催)日本Javaユーザーグループ」に行ってきました。 去年は、後輩と2人でお上りさんぶりを発揮してしまい、会場まで行くのを時間ロスしてしまい、時間通りに辿りつけませんでしたが、今年は余裕の20分前着席! …

【Nexus】インハウス・リポジトリからのJarファイル取得

次に、Nexus上にアップロードしたファイルを取り込む方法です。 gradleプロジェクトで試してみました。 まずは、Repositoriesに自前Nexusの設定を追加しておきます。 repositories { mavenCentral() maven { url "http://192.168.1.10:8081/nexus/content/re…

【Nexus】アーカイブ・ファイルのアップロード

前回、CentOS7のServerにNexus(OSS版)を無事にインストールできましたので、今回は、実際にJarファイルのアップロードと別プロジェクトから取得する方法を試したいと思います。 まずは、アップロードから。 とりあえず、セキュリティ的な設定は、何もして…

【シェルスクリプト】Javaクラスの実行結果を取得する方法

Linuxのシェルスプリプトでは、Javaの実行結果(System.exit)の値を取得できることが今回、わかりました。 以前に作成した「Test.jarファイル」を使用して、クラスの実行結果を取得するシェルスプリプトを書いてみました。 【Eclipse】JARファイルのエクス…