1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

『わかりやすいJakarta EE ウェブシステム入門』の sample21 を VS Code + WildFly + PostgreSQL でやる

Last updated at Posted at 2024-09-08

『わかりやすいJakarta EE ウェブシステム入門』では NetBeans + Payara Server + MySQL を使っていますが、VS Code + WildFly + PostgreSQL を使いたい事情があり、挑戦してみました。

前提

VS Code + WildFly で sample01 を実施済みとします。

sample21-01 を開く

C:\jet\projects\sampleProjects\sample21-01 フォルダーを VS Code で開きます。

docker-compose

以下の内容で docker-compose.yml を作成し、docker-compose up -d します。

docker-compose.yml
services:
  db:
    image: postgres
    container_name: postgres-yokuwakaruee
    environment:
      POSTGRES_PASSWORD: app
    ports:
      - 5432:5432

VS Code への Docker プラグインの導入と Docker コンテナーの操作

簡単だったので省略。

pom.xml の変更

pom.xml に以下を書き加えます。

dependencies への追加

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.7.4</version>
</dependency>

plugins への追加

sample01 で実施した内容に加え、package フェイズで以下を実行するようにします。

  1. サーバーの起動
  2. JDBC ドライバーの追加
  3. データ ソース (コネクション プール) の追加
  4. サーバーの停止
			<plugin>
				<groupId>org.wildfly.plugins</groupId>
				<artifactId>wildfly-maven-plugin</artifactId>
				<version>4.2.2.Final</version>
				<configuration>
					<version>26.1.3.Final</version>
					<javaHome>C:\path\to\jdk-11</javaHome>
					<debug>true</debug>
				</configuration>
				<executions>
					<!-- deployment preparation -->
					<execution>
						<id>start-server</id>
						<phase>package</phase>
						<goals>
							<goal>start</goal>
						</goals>
					</execution>
					<!-- deployment -->
					<execution>
						<id>deploy-postgresql</id>
						<phase>package</phase>
						<goals>
							<goal>deploy-artifact</goal>
						</goals>
						<configuration>
							<groupId>org.postgresql</groupId>
							<artifactId>postgresql</artifactId>
							<name>postgresql.jar</name>
						</configuration>
					</execution>
					<!-- connection-pooling datasource -->
					<execution>
						<id>add-datasource</id>
						<phase>package</phase>
						<goals>
							<goal>add-resource</goal>
						</goals>
						<configuration>
							<address>subsystem=datasources,data-source=mydbpool</address>
							<resources>
								<resource>
									<properties>
										<jndi-name>java:/jdbc/mydb</jndi-name>
										<connection-url>jdbc:postgresql://localhost/postgres</connection-url>
										<driver-class>org.postgresql.Driver</driver-class>
										<driver-name>postgresql.jar</driver-name>
										<user-name>postgres</user-name>
										<password>app</password>
									</properties>
								</resource>
							</resources>
						</configuration>
					</execution>
					<!-- shutdown before wildfly:dev -->
					<execution>
						<id>shutdown-server</id>
						<phase>package</phase>
						<goals>
							<goal>shutdown</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

文字化け防止

sample01 で作成した jboss-web.xml を webapp\WEB-INF に配置します。

jboss-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
        <default-encoding>UTF-8</default-encoding>
</jboss-web>

実行

これで、Ctrl+Shift+P > Maven:Execute Commands... > Custom... > clean package wildfly:dev を実行すると、サーバーがダウンロードされ、http://localhost:8080/sample21-01/ にアクセスすると画面を確認することができます。

wildfly:dev の前に package を実行することがとても重要です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?