- 投稿日:2020-10-16T17:37:02+09:00
Eclipse実行時のエラーメッセージを翻訳してみた(Java)
Eclipse実行時のエラーを翻訳してみました
エラー原因
org.springframework.beans.factory.BeanCreationException
RequestMappingの値が重複したときに起きるエラーエラー詳細の翻訳
encountered during context initialization
コンテキストの初期化中に発生しましたcancelling refresh attempt
更新の試行をキャンセルするError creating bean with name
名前のあるBeanの作成中にエラーが発生しましたError creating bean with name
名前のあるBeanの作成中にエラーが発生しましたdefined in class path resource
クラスパスリソースで定義Invocation of init method failed
initメソッドの呼び出しに失敗しましたAmbiguous mapping.
あいまいなマッピング。Cannot map 'memberRestController' method
'memberRestController'メソッドをマップできません
- 投稿日:2020-10-16T16:58:23+09:00
VSCodeでJavaの開発環境構築をする
学部の授業でJavaを用いたオブジェクト指向入門をしたものの,「だいぶ前のことで忘れてしまった...」ということで,復習がてら再入門していきます.
開発環境構築
Javaは2年前くらいに学部の授業で利用していましたが,PCを新しくしてから初めて利用するため,開発環境構築からしなくてはなりません.
統合開発環境としてはEclipseが有名で講義でも利用していました.しかし,利用頻度の小さいJavaのために新しくインストールしたくなかったため,VSCodeを利用して環境構築しました.環境構築は,こちらを参考に行いました.以下はリンク先に書かれている,環境構築の概略です.
JDK(Java SE Development Kit)のインストール
もし,JDKをインストールしていなかったら以下からダウンロードする必要があります.
VSCode for JavaではJava SE 11以上のバージョンで利用できるようなので,上のリンク先から最新のJDKをダウンロードすれば良いでしょう.
次のステップでパスの設定を行うので,インストールした際にパスをメモっておくことをお忘れなく.
java.home
の設定今回はVSCodeだけでJavaが使えればいいので,VSCodeの
java.home
を設定すれば十分です.
設定手順は以下の通りです:
- VSCodeの設定画面を開く(
Ctrl+,
)- 検索ボックスに"java.home"と入力
- Edit in settings.jsonをクリックして,
java.home
にインストールしたJDKのパスを記入設定するパスの例{ ..., "java.home": C:\\Program Files\\Java\\jdk-13.0.2, }Java Extension Packのインストール
続いて,Java開発で有名な複数のVSCode拡張機能を一気にインストールします.
手順は以下の通りです:これで,一番上に"Java Extension Pack"が現れると思います.Installボタンを押して少し待てば完了です.
これで,VSCodeを用いたJava環境が整いました!Javaプロジェクトの作成と実行
プロジェクトとは,開発するプログラムを構成するソースファイルや,それらをコンパイルして実行するための設定などをまとめたもののことを指します.
早速プロジェクトを作成してみましょう.Javaプロジェクトの作成
これでプロジェクトが作成できました!
実行
プロジェクトを作成すると,以下の画像のようにいくつかのファイルが自動で作成されます.
src/App.java
を見てみるとデフォルトでHello, World!
を出力するプログラムがあります.
mainの上に
Run|Debug
と書いてありますね.
このプログラムを実行するには,このRun
をクリックすればOKです.実行結果Hello, World!これで,プロジェクトの作成と実行ができました!
今後の記事で,じゃんけんを実装しながらオブジェクト指向入門をしていきます.
参考
- 投稿日:2020-10-16T15:23:42+09:00
[Java] PDFバージョンを変換する
日常生活や仕事の中では、私たちの使ってるデバイスが、PDFバージョンに
厳しい条件が必要だという場合はよくあるんでしょう?こういう時なら、PDFバージョンを変換して、そのデバイスに合わせる必要があると思います。だから、この記事では、Free Spire.PDF for Javaを使用してPDFバージョンを変換する方法を説明します(PDFバージョン1.0-1.7 変換可能)JARパッケージのインポート
方法1: Free Spire.PDF for Javaをダウンロードして解凍したら、libフォルダーのSpire.Pdf.jarパッケージを依存関係としてJavaアプリケーションにインポートします。方法2: Mavenリポジトリから直接にJARパッケージをインストールしたら、pom.xmlファイルを次のように構成します。
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>3.9.0</version> </dependency> </dependencies>Javaサンプルコード:
package com.spire.pdf; public class ChangePdfVersion { public static void main(String[] args) { //PdfDocumentオブジェクトを作成します PdfDocument document = new PdfDocument(); //PDFドキュメントを読み込みます document.loadFromFile("test.pdf"); //PDFバージョンを1.6に変更します document.getFileInfo().setVersion(PdfVersion.Version_1_6); //ドキュメントを保存します document.saveToFile("ChangePdfVersion.pdf", FileFormat.PDF); document.close(); } }
- 投稿日:2020-10-16T06:42:37+09:00
ThymeleafでJavaScriptを生成する
概要
ひょんなことからThymeleafでJavaScriptを触ることがあったので備忘録です。
環境
OpenJDK 11.0.2
SpringBoot 2.3.4
Thymeleaf 3.0.11TemplateEngine設定
AppConfig.java@Configuration public class AppConfig { @Bean public TemplateEngine scriptTemplateEngine() { final TemplateEngine templateEngine = new TemplateEngine(); templateEngine.setDialect(new SpringStandardDialect()); templateEngine.setTemplateResolver(scriptTemplateResolver()); return templateEngine; } private ITemplateResolver scriptTemplateResolver() { final ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver(); templateResolver.setPrefix("/templates/scripts/"); templateResolver.setSuffix(".js"); templateResolver.setTemplateMode(TemplateMode.JAVASCRIPT); templateResolver.setCharacterEncoding("utf-8"); templateResolver.setCacheable(false); templateResolver.setCheckExistence(true); return templateResolver; } }テンプレートファイル作成
resources/templates/scripts/sample.js'use strict'; (() => { const rawData = [# th:text="${rawData}" /]; const jsonData = [# th:text="${jsonData}" /]; console.log(rawData); console.log(jsonData); })();2つの変数を渡す形にします。
コントローラ設定
SampleController.java@Controller @RequiredArgsConstructor public class SampleController { private final TemplateEngine scriptTemplateEngine; private final ObjectMapper objectMapper; @GetMapping(value = "/app.js", produces = "text/javascript") @ResponseBody public String sample() throws JsonProcessingException { String path = "sample"; Map<String, Object> map = new HashMap<>(); map.put("id", 1); map.put("name", "Takeshi"); List<Map<String, Object>> list = new ArrayList<>(); list.add(map); Context ctx = new Context(); ctx.setVariable("rawData", list); ctx.setVariable("jsonData", objectMapper.writeValueAsString(list)); return scriptTemplateEngine.process(path, ctx); } }sample()の方でデータを作成し、先ほどの変数名と同じ名前でそれぞれデータそのものとJSON文字列に変換したデータをprocessメソッドに渡し返却します。
注意したいのがthymeleaf-spring5の依存性を追加すると、自動でViewを返却するためのBeanがtemplateEngineという名前で作成されます。
設定ファイルで作成したBeanを使用する場合はその際に使用したBean名でDIする必要があります。結果
無事作成できました。
動的にJS作成する機会はそうそうないとは思いますが参考まで。Thymeleafのアップデートは2年ほどないみたいですね。
開発止まったのですかね。