- 1. JBossEAP上のアプリケーションでlog4jからlog4j2にバージョンアップ
- 2. Spring Boot備忘録
- 3. IBM SDK, Java Technology EditionとIBM Semeru Runtimeで使用可能なCharsetの差について
- 4. Libertyで Spring Boot 3 を動かす
- 5. 【Java】StringUtilsのメソッドが便利だった件
- 6. import文のjavaxとjakartaのちがいは?
- 7. Javaにおける2進数の具体的な活用例
- 8. Java環境の設定とH2データベースサーバーの起動方法
- 9. 10月なので言語のサ終を確認しましょう
- 10. JavaでPDFの表データをテキスト、CSV、およびExcelファイルに抽出する方法
- 11. BLE初心者へ、AndroidのBLE機能を実装する上で知っておくと良いこと
- 12. メモ オブジェクト、インスタンス、インスタンス変数とか
- 13. AtCoderで使用するJavaのMakefileテンプレート(Windows)
- 14. 友人とのイベントのためのチケット管理アプリ開発Day2
- 15. [整理] Rate limit関連アルゴリズム
- 16. jackson-databindでStringをenum型にデシリアライズする
- 17. 【Java Silver11】体験記
- 18. JavaでWebアプリのE2Eテストを自動化する〜その1 Selenideを使ったブラウザ操作
- 19. JSON-B使い方メモ
- 20. Tomcatで永遠に404が出て困った(解決せず)
JBossEAP上のアプリケーションでlog4jからlog4j2にバージョンアップ
# はじめに
JBoss EAP 7.4上のWebアプリケーションをlog4jからlog4j2にバージョンアップした。
# 環境
* java11
* Windows 11
* JBoss EAP 7.4.0
* TERASOLUNA Server Framework for Java 5.7.3.RELEASE (5.5からバージョンアップ)
* log4j 2.20.0 (1.2.17からのバージョンアップ)mavenでビルドしている。
# やったこと
## loggerの変更
log4j2を使用するにあたり、loggerをLogManagerから取得するよう変更しました。importするライブラリの変更
“`java
// import org.apache.log4j.Logger;
// ↓
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
“`
コード変更
“`java
//private static Logger logger = L
Spring Boot備忘録
# Spring Boot主要アノテーション
・@RestController API作成
・@Configuration 色々設定する。外部APIもここで設定
・@Service 処理を作る
・@Dataを使い、データ型指定するだけでsetterとgetterを自動生成
・@Errorhandler エラー処理を渡すことができる
・@RequierdArgsConstructor インターフェースを引数付きコンストラクタで持ってくる
・@BeanでDI 自動管理させる
・@PostMapping データ追加
・@Transactional 別クラス呼ばれる時にDBトランザクション処理を行う
・@Qualifier Beanに登録する名前Mybatisを使った場合
・@Mapperを使いデータベース接続
・@Select,@Update,@Insert,@Deleteを使ってデータベース操作出来る
恐らく2つ以上のコネクションを排他制御しないで使っているのが原因。JPA使った場合
・@Entityでデータを持ってくる
・@Tableでテーブルを指定
・@IdでPrimar
IBM SDK, Java Technology EditionとIBM Semeru Runtimeで使用可能なCharsetの差について
## IBM SDK, Java Technology Edition、IBM Semeru Runtime、IBM Semeru Runtime Certified Edition for z/OSのCharsetの一覧
IBM Semeru Runtimeのガイドには以下の記述があり、IBM SDKで使用できたCharsetの一部が使用できなくなっています。また、IBM Semeru Runtimeでも分散系とz/OS版でガイドの記述が異なるため、実機にて使用可能なCharsetを抽出して比較してみました。
Semeru Runtimes migration guide
/ Changes resulting from IBM deprecations and removals
https://www.ibm.com/support/pages/semeru-runtimes-migration-guide#changes-resulting-from-ibm-deprecations-and-removals
> The following codepages that we
Libertyで Spring Boot 3 を動かす
# 目的
Libertyで Spring Boot 3 のプログラムをテストします。
# Spring Boot 3 プログラムのベースを入手
いつものDockerに用意するのではなく、Spring Boot 3 プログラムのベースを作成するところから説明します。
Spring Initializerで指定をしてプロジェクトをダウンロードします。[Spring Initializer](https://start.spring.io/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262366/b3f8ea6c-06ad-f2cc-904a-83620e57006f.png)
画像のように指定して GENERATE ボタンを押してダウンロードします。
PackagingはWarにします。# Eclipseにプロジェクトをインポート
ダウンロードした zip を Eclipseにインポートします。
zip は unzip しておきます。インポートするとそこがプロ
【Java】StringUtilsのメソッドが便利だった件
# 概要
こんにちは!
本日はコードレビューで教わったJavaのtipsを書いてみます。Javaを数年書いてるのに知らなかったので、
その念も込めた記事です笑## StringUtilsについて
StringUtilsはString型の文字列操作で様々な操作ができるメソッドです!レビューで教わった際もそうだったのですが、例えば
nullチェックが不要になる考慮があったりします。公式サイト↓
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
### ChatGPTにも聞いてみた
文字列操作ってのは上記と同様で、「Apache Commons Lang」
というライブラリにて提供されているようですね。:::note info
StringUtils は、一般的に 文字列操作 を行うための便利なメソッドを
提供するクラスやライブラリを指します。特に、Javaの Apache Commons Lang ライブラリの一部として
import文のjavaxとjakartaのちがいは?
**javaxとjakarta**の違いは、主にJavaのエンタープライズ技術における名前空間やプロジェクトの管理に関連しています。以下で詳しく説明します。
## 1. javaxとは?
##### 【歴史的背景】
javaxは、かつてのJava EE(Java Platform, Enterprise Edition)で使用されていたパッケージ名です。Java EEは、エンタープライズ向けアプリケーション(特にサーバーサイドアプリケーション)の開発に用いられる標準化されたAPIセットで、Oracleが主導していました。
##### 【主要な技術】
Java EEには、javaxパッケージ内にサーブレット、JSP、JPA、EJBなど、エンタープライズ向けの重要な技術が含まれています。例として、javax.servletやjavax.persistenceなどがあります。
## 2. jakartaとは?
##### 【歴史的背景】
2017年、OracleはJava EEの権利をEclipse Foundationに移管しました。この移管により、Java EEはJakarta E
Javaにおける2進数の具体的な活用例
# Javaにおける2進数の具体的な活用例
システム開発において、2進数(バイナリ)の理解は非常に重要です。Javaでは、ビット演算やビットフィールドを活用することで、効率的なコーディングや低レベルの操作が可能になります。以下に、Javaでの具体的な2進数の活用例をいくつか紹介します。
—
## 1. ビットフラグの管理
ビットフラグを使用すると、複数の状態やオプションを1つの整数値で管理できます。これにより、メモリの節約や処理の高速化が図れます。
### 例: ユーザー権限の管理
“`java
public class BitFlagExample {
// ビットフラグの定義
public static final int READ_PERMISSION = 0b0001; // 1
public static final int WRITE_PERMISSION = 0b0010; // 2
public static final int EXECUTE_PERMISSION = 0b0100; // 4
pub
Java環境の設定とH2データベースサーバーの起動方法
# Java環境の設定とH2データベースサーバーの起動方法
この記事では、Windows環境におけるJavaの環境変数設定方法と、H2データベースサーバーの起動方法について詳しく解説します。特に、`JAVA_HOME`や`PATH`の設定方法、クラスパスの重要性、そしてH2サーバーをコマンドラインから起動する際の手順に焦点を当てます。
—
## 目次
1. [Java環境変数の設定](#java環境変数の設定)
– [`JAVA_HOME` の設定](#java_home-の設定)
– [`PATH` 変数の更新](#path-変数の更新)
2. [H2データベースサーバーの起動](#h2データベースサーバーの起動)
– [コマンドの詳細](#コマンドの詳細)
– [実行例](#実行例)
3. [クラスパスと参照設定の関係](#クラスパスと参照設定の関係)
– [クラスパスとは?](#クラスパスとは)
– [参照設定との類似点](#参照設定との類似点)
4. [バッチファイルの作成と実行](#バッチファイルの作成と実行)
– [バッ
10月なので言語のサ終を確認しましょう
そろそろ10月.
iPhoneが出るような季節には,言語のバージョンも確認するのをルーティンにしたいですね….
サ終している環境でリリースや構築して面倒なことにならないために….よく使う3種の言語について個人的にまとめておきます.
## Python
2024年10月のイベント
* 3.8 系が end-of-life(サポート終了)
* 3.13 系が prerelease3.12 は9月末までは bugfix だったので,3.11 あたりへの乗り換えが妥当かなぁ….
https://devguide.python.org/versions/
|version|status|firstRelease|endOfLife|
|:–|:–|:–|:–|
|3.13|prerelease|**2024/10/01**|2029/10|
|3.12|bugfix|2023/10/02|2028/10|
|3.11|security|2022/10/24|2027/10|
|3.10|security|2021/10/04|2026/10|
|3.9|security
JavaでPDFの表データをテキスト、CSV、およびExcelファイルに抽出する方法
PDFに埋め込まれた表データを正確に抽出し、テキスト、CSVファイル、またはExcelワークシートなど、より分析しやすく操作可能な形式にシームレスに変換することは、重要なドキュメント処理のスキルです。Javaを使用して、このプロセスを簡単に実現できます。本記事では、**Javaを使ってPDF文書から表データを抽出**し、**テキストファイル、CSVファイル、Excelワークシートに書き込む**方法をご紹介します。
– **[JavaでPDFの表をテキストファイルに抽出](#javaでpdfの表をテキストファイルに抽出)**
– **[JavaでPDFの表をCSVファイルに抽出](#javaでpdfの表をcsvファイルに抽出)**
– **[JavaでPDFの表をExcelファイルに抽出](#javaでpdfの表をexcelファイルに抽出)**この記事で使用する方法は、主に無料の[Free Spire.PDF for Java](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-java.html)ライブラリを必要とします。
BLE初心者へ、AndroidのBLE機能を実装する上で知っておくと良いこと
## BLE実装の全体の流れは、以下のとおりです
1. `スキャン`を開始する
1. `アドバタイズ`しているBLE機器を発見する
1. `ボンディング`または`ペアリング`を行う
1. `Gatt`を介してBLE機器に`コネクト`する
1. `Gatt`を介して通信する
1. `サービス`を`ディスカバー`する
1. `キャラスタリスティック`を取得する
1. `コマンド`を送信する
1. `通知`を有効にする
1. 受け取ったデータで何かするBLEの実装が初めての人は、何のことがわからないですよね。
以下を流し読めば、最後には処理の流れが理解できるようになっていると思います!
それでは、BLEの実装について説明していきます。## BLE
– Bluetooth Low Energy のこと
– アプリ開発のBluetoothには、BLEの他に「Bluetooth Classic」がある## Gatt(BluetoothGatt)
– スマートフォンと、BLE機器を接続するための、スマートフォン側がBLE機器に対して作る道のこと
– スマートフォンは、Gattを介して、B
メモ オブジェクト、インスタンス、インスタンス変数とか
# インスタンス変数
“`
class Dog {
String name; // インスタンス変数
int age; // インスタンス変数// コンストラクタでインスタンス変数に値を設定
Dog(String name, int age) {
//this.nameはインスタンス変数 thisは、現在のオブジェクトを指すキーワード
//nameは引数として受け取ったname
this.name = name;
this.age = age;
}
}
“`
インスタンス変数: 各インスタンスに属する変数で、オブジェクトの状態を表す。例: nameやage# コンストラクタ
オブジェクトの初期化を行う
“`
// コンストラクタ
Car(String color, String model) {
this.color = color; // 引数で受け取った色をプロパティに設定
this.model =
AtCoderで使用するJavaのMakefileテンプレート(Windows)
##AtCoderで使用するJavaのMakefileテンプレート(Windows)
Atcoder用なのでデフォルトパッケージです。
環境は、Windows OS
AIでひな形を作成し修正しました。テストの方法
“`
oj test -c “java.exe -classpath .\release Main” -d ./test
“`テストの方法は、javaファイルを直接実行する方法もあります。
“`
oj test -c “java.exe Main.java” -d ./test
“`提出方法
“`
acc submit Main.java — -l 5005
“`
5005 (Java (OpenJDK 17))
5009 (JavaScript (Node.js 18.16.1))
5010 (JavaScript (Deno 1.35.1))###Makefile
デバッグビルド用の出力ディレクトリ .\debug
リリースビルド用の出力ディレクトリ .\release
となっています。“`
# Java用Makefile
友人とのイベントのためのチケット管理アプリ開発Day2
これから友人と企画・主催するイベントの知見と管理アプリを開発していくときに勉強になったことを、復習しやすくまたは記憶しやすくするために記録したいと思う。他の人の参考にもなればなおうれしいです。
### まずアプリの全体の概要とアーキテクチャ、データベース設計を決めた ###
#### 1. システム全体の概要 ####
– **ユーザー側**: チケットを生成・取得し、QRコードをスキャンして利用します。
– **ドリンク側**: QRコードを読み取ってチケットの検証を行います。
– **サーバー側**: チケットの生成、保存、検証、QRコードの管理を行います。#### 2. アーキテクチャ ####
1. **フロントエンド (TypeScript + フレームワーク例: React, Angular, Vue.js)**
– **チケット生成画面**: ユーザーがチケットを生成するためのインターフェース。
– **QRコード表示**: 生成されたQRコードを表示する機能。
– **QRコードスキャン機能**: ドリンク側でQRコードを読み取るイン
[整理] Rate limit関連アルゴリズム
### Rate Limitが必要な背景
このテクニックは、主にapigatewayで使用されます。
Rate limiting(レートリミティング)は、**サーバーやネットワーク資源の過負荷を防止**し、サービスの安定性を維持するために重要な技術です。以下のような状況で特に必要とされます:1. **DDoS攻撃の防止**: 悪意のあるユーザーが大量のリクエストを一度に送信し、サーバーをダウンさせるのを防ぎます。
2. **資源の保護**: サーバーのCPU、メモリ、ネットワーク帯域幅などの限られた資源を保護し、過度なトラフィックによるパフォーマンス低下を防止します。
3. **公平な資源配分**: 多くのユーザーが同時にサービスを利用する際、特定のユーザーに過剰なリソースが割り当てられないようにし、すべてのユーザーに公平なリソース使用の機会を提供します。
4. **APIの乱用防止**: APIを呼び出すクライアントが許容範囲を超えてリクエストを送信することを防ぎます。
5. **サービス品質の維持**: 過度なトラフィックによってサービスが遅くなったり停止したりするのを防ぎ、全
jackson-databindでStringをenum型にデシリアライズする
# jackson-databindを導入 (maven)
“`xml:pom.xml
com.fasterxml.jackson.core
jackson-databind
2.14.3
“`# enumを定義
“`java
import com.fasterxml.jackson.annotation.JsonProperty;public enum Status {
@JsonProperty(“finished”)
DONE,
@JsonProperty(“wip”)
IN_PROGRESS,
@JsonProperty(“ready”)
NOT_STARTED;
}“`
# JSONモデルを定義
“`java
public class Task {
publ
【Java Silver11】体験記
# ⓪はじめに
先日、Java Silver11に合格しました!今回は、①申込方法、②試験当日の流れ、③意識したことを残します。
②と③の最初の2点は、他の資格試験でも参考になる部分があるかもしれません。
※全て2024年9月時点の情報になりますので、ご了承ください。# ①申込方法
初めての受験でしたので、以下のサイトを参考に、
– Oracle社のサイト
– CertViewのサイト
– PearsonVUEのサイトに登録しました。
なぜ3つも登録が必要なの?!と思いますが、それぞれ、
– Oracle社の資格を受けるため
– 保有資格や受験予定の資格を管理・確認するため
– どの資格をどの会場で受験するかを選択するためという理由だと思います。
# ②試
JavaでWebアプリのE2Eテストを自動化する〜その1 Selenideを使ったブラウザ操作
## 記事の対象読者
– 最低限Javaの知識がある
– WebアプリケーションのE2Eテスト自動化に興味がある人## 動機
前職で関わっていた案件で本格的なTDD(テスト駆動開発)を経験し、その時にテストを自動化することのメリットやTDDのノウハウを学んだ。
現在関わっている案件は進め方がウォーターフォール的で、工程ごとにスケジュールが区切られている。
製造工程終了後にテスト期間がスケジュールされているため、テスト自動化が必須ではなかったが、ウォーターフォール型の開発スタイルでもTDDを実践するメリットはありそうだと感じたので、私が担当する機能においては部分的にTDDを取り入れて進めることにした。私が以前関わっていたTDDの案件では、WebのテストをSelenideというJavaのフレームワークで実現していた。
今回の開発案件も言語がJavaだったので、環境構築が楽にできそうという理由からSelenideを使用することにした。
自分1人で何もない状態からE2Eテストの実行基盤を作ったのは初めてだったが、思ったよりも簡単にテスト自動化の環境を構築できたので、環境構築や基礎
JSON-B使い方メモ
# JSON-B とは
– Java EE 8 で追加された仕様で、 JSON と Java オブジェクトの相互変換を行う API を定義している
– Jakarta EE での正式名称は Jakarta JSON Binding
– JAXB の JSON 版みたいなの
– B は Binding の B
– 読み方は、たぶん「じぇいそんびー」# 環境
“`
>gradle –version————————————————————
Gradle 8.8
————————————————————Build time: 2024-05-31 21:46:56 UTC
Revision: 4bd1b3d3fc3f31db5a26eecb416a165b8cc36082Kotlin: 1.9.22
Groovy: 3.0.21
Ant: Apache Ant(T
Tomcatで永遠に404が出て困った(解決せず)
新米も新米のJava練習生です。
結果が単純なものなので、読むほどのものでもないかと思いますのでご容赦ください。
解決せずプロジェクトを最初から作り直しています。それまでのいきさつとなります。EclipsからTomcatを使用してウェルカムファイルを作成しようとしていました。
ところがコピペしたはずのweb.xmlファイルと、index.htmlファイルを設定しても
ウェルカムファイルを開けず。。。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892844/430de436-6a89-bc1c-60cc-8988faa9fe90.png)
web.xmlファイルのコードはこの通りです。(htmlファイルは割愛します。)
OTHERカテゴリの最新記事
-
- 2024.11.15
JavaScript関連のことを調べてみた
-
- 2024.11.15
iOS関連のことを調べてみた
-
- 2024.11.15
JAVA関連のことを調べてみた
-
- 2024.11.15
Rails関連のことを調べてみた
-
- 2024.11.15
Python関連のことを調べてみた
-
- 2024.11.15
Lambda関連のことを調べてみた