- 1. 【Spring】[org.springframework.web.context.ContextLoaderListener] のアプリケーションリスナの設定中にエラーが発生しました。【Eclipse】
- 2. 【Spring】org.springframework.web.servlet.DispatcherServlet noHandlerFound
- 3. [Vision API] Javaで画像のクロップヒントを検出する
- 4. [Vision API] Javaで画像内の文字を検出する
- 5. フィールド値のみを利用するには
- 6. JSONファイルからhttpリクエスト情報を取得してhttpリクエストする
- 7. 【Java】EC2でHello Worldするまで
- 8. 日時チェックがしたい
- 9. Java util timerに関して(スケジューラ)
- 10. ABC343の解答[Java]
- 11. [Vision API] Javaで画像内のラベルを検出する
- 12. Processingの複素数ライブラリ
- 13. ABC342A~Fの解答[Java]
- 14. [Vision API] Javaで画像内のロゴを検出する
- 15. 【Java】並列処理【Thread】
- 16. 「Struts」 ⇒「Spring Framework」に移行されると聞いて
- 17. [Vision API] Javaで画像内のオブジェクトを検出する
- 18. アクセス制御
- 19. APIとは
- 20. Processingでスレッドthread処理
【Spring】[org.springframework.web.context.ContextLoaderListener] のアプリケーションリスナの設定中にエラーが発生しました。【Eclipse】
# はじめに
EclipseでSpringの適当なアプリを作ってTomcatを起動すると、表記のエラーがでるので解決策をメモ。:arrow_down: ログ。
“`
重大: クラス [org.springframework.web.context.ContextLoaderListener] のアプリケーションリスナの設定中にエラーが発生しました
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1449)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1257)
at org.apache.catalina.core.DefaultInstan
【Spring】org.springframework.web.servlet.DispatcherServlet noHandlerFound
# はじめに
Spring MVCで適当なアプリを作ったところ、404エラーが出続けたので自分の誤りをメモ。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526202/e5e4d8af-9333-f41b-31db-2cc172f36df6.png):arrow_down: ログ抜粋
“`
3月 08, 2024 2:29:43 午後 org.springframework.web.servlet.DispatcherServlet noHandlerFound
警告: No mapping for GET /demo6/
3月 08, 2024 2:29:43 午後 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleNoHandlerFoundException
警告: No endpoint GET /demo6/.
“`# 間違ってたとこ
Bean定義ファイルの
[Vision API] Javaで画像のクロップヒントを検出する
Googleが提供しているVision APIをJavaで使ってみました。
APIを使用し、画像をクロップするヒント(座標)を取得します。
画像のクロップとは、中心のROI矩形領域のみの部分画像の切り出すことで
画像の最適化を行います。記事では、APIの実行、その結果についてのみを記載していますので、
画像クロップや画像処理周りについて気になる方は検索してください。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||2|[レスポンスの内容](#22-レスポンスの内容)|
|3||[結果の
[Vision API] Javaで画像内の文字を検出する
Googleが提供しているVision APIをJavaで使ってみました。
APIを使用し、画像内に含まれている文字を検出します。
画像から光学式文字認識(OCR)を使用してテキストを検出、抽出できます。
検出の指定は2つあります。
|タイプ|検出内容|
|—|—|
|TEXT_DETECTION|抽出された文字列全体、個々の単語、それらの境界ボックスが取得できます。|
|DOCUMENT_TEXT_DETECTION|「TEXT_DETECTION」で取得できる情報に加え、
検出結果の信頼度、ページ、ブロック、段落、単語、改行の情報が取得できます。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの
フィールド値のみを利用するには
getterメソッドを用いるとフィールド値のみを取り出す事が出来ます。
~~~
アクセス修飾子 フィールドの型 getフィールド名(){
return this.フィールド名;
}
~~~
この時、フィールド名の最初の文字を大文字にする必要があります。
JSONファイルからhttpリクエスト情報を取得してhttpリクエストする
“`json:requestURL.json
{
“AService”: “https://postman-echo.com/post”,
“BService”: “https://postman-echo.com/get”,
“CService”: “https://postman-echo.com/put”
}
“`“`json:requestHeader.json
{
“client-id”: “id-hoge”,
“Authorization”: “auth-info”,
“client-secret”: “secret-hoge”
}
“`“`json:requestBody.json
{
“apiVer”: “10.0”,
“list”:[
{
“name”: “hoge”,
“url”: “http://hoge.com”
},
{
“name”: “fuga”,
“url”: “http://fuga.com”
}
]
}
“``
【Java】EC2でHello Worldするまで
## はじめに
今回は、AWS EC2上にJavaをインストールし、Hello Worldしてみました。
備忘録として、記録します。
## 環境
・Windows 11
・エディタはVScodeを使用
## 前提
・AWSのアカウントを持っていること
・IAMユーザーを一つ作成してあること
*AWSのベストプラクティス的にルートユーザーで作業することは推奨されていないため。IAMユーザーの作り方は以下を参照
https://qiita.com/kzykmyzw/items/ca0c3276dfebb401f7d8
## 今回やること
EC2上にJarファイルをデプロイし、アクセスできる。## Step1 セキュリティグループの作成
まず、はじめに任意のIAMユーザーでコンソールにログインし、EC2を開きます。
そして、右下にあるセキュリティ・グループを押して、右上にあるセキュリティグループを作成を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720597/bbbb
日時チェックがしたい
先日ふと
日付形式がyyyy/MM/dd の形式ではうまく実装ができない箇所があった。
uuuu/mm/ddの形式であれば実装できたのだが違いが分からなかったので簡単にまとめる。以下はどこでも見るような簡単な日付チェックの処理の一文である。
“`javatry {
LocalDate.parse(“日付を保持したクラス”,DateTimeFormatter.ofPattern(“uuuu-MM-dd”).withResolverStyle(ResolverStyle.STRICT));
} catch (DateTimeParseException e) {
return false;
}
“`処理に関して西暦で処理を実施するのであれば、
存在しない日付の自動的な修正も含めてuuuuの形式が無難であった。
逆に、存在しない日付をエラーとしたい場合は上記のように
ResolverStyle.STRICTをつけることで2022/09/31などをエラーとすることができる。
(※そのままだと自動的に09/30に修正してしまう)逆に、
Java util timerに関して(スケジューラ)
javaのtimerクラスに処理の定期実行を実施するクラスがある。
スケジュールメソッドで実行するのだが、
引数に
1・実行する処理
2・開始時間(ミリ秒)
3・実施間隔(ミリ秒)
で指定することで簡易的にではあるがJP1のような
定期実行処理をJavaで実施することができる。例えばAの処理を10秒後に、60秒間隔で実行する
ような処理の場合
“`java
time.scheduleAtFixedRate(A(), 10000, 60000);
“`
といった実装になる。問題点としては複雑な実行処理が難しい点で
複数タスクをこのメソッドで実行するのはやや難がある例えばサイトアクセスのカウントなどであれば単一のタスクを永遠と繰り返すだけのため
このようなTimerメソッドでも問題はないのだが、A→B→Cのような連続したタスクの実行の場合
処理速度の如何によっては並行して処理が実施されるため挙動に影響が出る複数の処理実施の場合はバッチで順々に呼び出す方が無難かと思われた
TimerクラスはThreadよりは使いやすそうに見えるが
周期的に実行するクラスとメ
ABC343の解答[Java]
## はじめに
今回はコンテスト中にFまで、コンテスト後にGを解いたのでそれを載せようと思います。なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc343/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認下さい。
では、見ていきましょう。## A – Wrong Answer
問題文は[こちら](https://atcoder.jp/contests/abc343/tasks/abc343_a)$A+B$が$0$になるとき以外は$0$を、$A+B$が$0$のときは$1$を出力するようにしました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final Sim
[Vision API] Javaで画像内のラベルを検出する
Googleが提供しているVision APIをJavaで使ってみました。
APIを使用し、画像内に含まれているラベルを検出します。
ラベルは、画像にどのようなものが写っているのかをAIで判定し、
文字列(英語)で返してくれます。本記事の[3. 結果の検証](#3-結果の検証)でどのようなものが検出されるか試していますが、
「ジーンズ」「猫」「自然食品」なども認識されます。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||2|[レスポンスの内容](#22-レスポンスの内容)|
|3|
Processingの複素数ライブラリ
https://qiita.com/hextomino/items/13d74872625e52a1329a
以前、上記の投稿をしたときには、processingの複素数ライブラリを見つけることができなかったんですが、見直したら、ちゃんとありました。javaのライブラリを探していたのが行けなかったのかもしれません。
https://processing.org/reference/libraries/
https://github.com/vmathmachine/Complex-Numbers/tree/latest
ライブラリ名称「Complex Numbers」
制作者「Math Machine」
マニュアルは、GitHubからZipでダウンロード。HTMLで提供。以下、過去の投稿同様に、確認していきます。
# 複素数の計算
二乗してみます。
“`math
i^2=-1
“`“`java:processing
import complexnumbers.*;
Complex i = new Complex(0,1);
print(i.mul(i));
ABC342A~Fの解答[Java]
## はじめに
今回はコンテスト中にEまで、コンテスト後にFを解いたのでそれを載せようと思います。なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc342/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認下さい。
では、見ていきましょう。## A – Yay!
問題文は[こちら](https://atcoder.jp/contests/abc342/tasks/abc342_a)一文字目が先頭以外に見つからなかったら$1$を、見つかったら先頭と異なる文字の位置を出力しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter
[Vision API] Javaで画像内のロゴを検出する
Googleが提供しているVision APIをJavaで使ってみました。
APIを使用し、画像内に含まれているロゴを検出します。
:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||2|[レスポンスの内容](#22-レスポンスの内容)|
|3||[結果の検証](#3-結果の検証)|
||1|[Googleの場合](#31-googleの場合)|
||2|[楽天の場合](#32-楽天の場合)|
||3|[トヨタの場合](#33-トヨタの場合)|
||4|[Bandai Visualの場合](#
【Java】並列処理【Thread】
備忘録としての投稿です
記事にしておきながらなんですが、人に見せることは目的をしておりません。
ですが、見かけた方が内容についていろいろとツッコミを入れてくださると嬉しいです。【自分について】
となるITベンチャー企業に入社し、日々勉強中です。
主にJavaを勉強しています。## スレッドとは?
プログラムの実行の流れ
基本的にプログラムは一行ずつ、上から下に実行される
この、上から下へのプログラムの実行の流れを「スレッド」という## シングルスレッド / マルチスレッド
・シングルスレッド:上記のスレッドが1つのみ。
そのため、一つのプラグラムが順番に実行される
・マルチスレッド:複数のスレッドを同時に実行する
処理A と 処理B を同時進行できる## 並行処理 / 並列処理
・並行処理:2つの処理の実行を切り替えながら、「並行」して処理を進めること
ある時点では、個別の処理しかしていないが、全体像としてみると、同時に進行「しているように」見える
→シングルコアでも可能・並列処理:実際に2つの処理を同時に行うこと
イメージとしては、
料理をしてい
「Struts」 ⇒「Spring Framework」に移行されると聞いて
## この記事を書こうと思った経緯
私が今いるプロジェクトでは使用されているフレームワークとして
Struts(正確にはStrutsベースのオリジナルフレームワーク)が使われているのですが、
後々にシステムをマイグレーションすることになりました。
そこで選ばれたフレームワークがSpring Frameworkでしたので、
いい機会だと思い、それぞれの特徴を調べることにしてみました。
## 各フレームワークの特徴■Struts ・MVCモデルが採用されている
・2001年に初版リリースされており、歴史が長い
・短期間での開発や初心者にも取り組みやすい
・Javaのコードの代わりに利用できる専用のタグライブラリを設けており、
JSPの記述を統一し可読性を上げることができる
・過去に脆弱性を指摘されている。(Struts2ではパッチで対策済み)
・Struts2とは互換性はない。■Spring Framework ・2003年に初版がリリースされている
・AOP(Aspect Orientati
[Vision API] Javaで画像内のオブジェクトを検出する
Googleが提供しているVision APIをJavaで使ってみました。
APIを使用し、画像内に含まれているオブジェクトを検出します。
画像にどのようなものが写っているのかをAIで検出し、
画像内の位置とオブジェクト名前を返します。本記事の[3.結果の検証](#3-結果の検証)でどのようなものが検出されるか試していますが、
大きめに映り込んでいるものしか検出されないようです。
ラベルを検出するの方がより細かい情報を取得できそうです。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||
アクセス制御
publicは全てのクラスからのアクセスを許可します。
privateは同一クラスからのアクセスのみを許可します。また、アクセス修飾子をクラス宣言に記載しない場合は、同一パッケージに属するクラスからのアクセスを許可(pakage private)します。
APIとは
## :ledger:前置き
よく聞くようになったAPIですが、人にきちんと説明することできますか…?
私は恥ずかしながらぼんやりとしか理解していませんでした。
今回はそんなAPIについて初心者に分かりやすくまとめていきたいと思います。## :ledger:APIってなに…?
一言で表すと
`他社が提供しているサービス内の機能や情報を扱える仕組み`です。Application Programming Interfaceの略称で
ソフトウェアやプログラム、Webサービスの間をつなぐインターフェースとも言われます。使用するプロセスは
利用者が`リクエスト`を送信し、提供者が`レスポンス`を返すことで構成されています。## WEB API
HTTP・HTTPS通信によってやりとりするAPIのことです。
GoogleやYahoo、Amazon、楽天、Facebook…など
ユーザーは各社のAPIを利用する事で、各サービスのデータを検索したりサイトで利用したり出来るようになります。## REST API
「RESTの
Processingでスレッドthread処理
# Processingでthread
https://processing.org/reference/thread_.html
標準でスレッド機能がある。
しかし、変数の受け渡しはできない。
重い計算を並列に計算して、マルチコアCPUの性能を引き出したいときに困る。
スレッドにid番号を振って、処理を振り分けたい。# プログラム
10個のスレッドを作成するサンプル。作成時にid番号を割り振る。
delayを追加することで、若干、処理のタイミングがズレて、printの実行タイミングがずれる。よって、実行のたびに、出力の順番が変わる。
実行後、1秒経過した時点で、一度に10個のprintが実行されるので、並列処理されていることが確認できる。“`java:processing
myThread myTh [] = new myThread[10];void setup() {
for(int i=0; i<10; i++){ myTh[i] = new myThread(i); } for(int i=0; i<10; i++){ m