質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

2回答

540閲覧

AWS上でJava x MySQLのwebアプリを実現したい

irrvgkus01

総合スコア1

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2023/06/16 02:07

実現したいこと

AWS上でJava x MySQLのwebアプリを実現したい

前提

https://qiita.com/AIM-Z/items/4848e061f21eacf0e815
を参考にAWSのIAM,EC2,RDSを作成しましたが、
Java x MySQLの部分が失敗します。

発生している問題・エラーメッセージ

:①アプリケーションサーバー ⇨ AWS EC2にtomcat9.0(eclipseとver一致させている)をインストール、ローカルのeclipseで作成したWARファイルを搭載。
:②データベース⇨ ①と同じEC2上にmysqlをインストール。DBの作成まで完了。

①にて作成したjavaのアプリは動作するが、DBアクセスの部分ができていない。

java.lang.NullPointerException dao.AddressDAO.findAll(AddressDAO.java:58) model.GetAdressListLogic.execute(GetAdressListLogic.java:10) servret.AddressBookIndex.doGet(AddressBookIndex.java:33) javax.servlet.http.HttpServlet.service(HttpServlet.java:529) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

該当のソースコード

//ここのURLを、AWSのDBにしたい。
private final String JDBC_URL = "jdbc:mysql://localhost:3306/Attendance?characterEncoding=UTF8&serverTimezone=Asia/Tokyo";
private final String DB_USER = "AWSのDBユーザー名";
private final String DB_PASS = "AWSのDBパスワード";

// ログインアカウントを探す public User findByLogin(LoginUser loginUser) { User user = new User(); // データベース接続に使用する情報 try (Connection con = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS)) {

(以下処理)

試したこと

・jdbcUrlの文字列。
localhostから、RDSのエンドポイント名:ポート/DB名に変更。
RDSのエンドポイント名:ポート/DB名?characterEncoding=UTF-8&serverTimezone=JSTに変更。
・cllasspathコマンドで ./:./mysql-connector-java-8.0.26.jarを追加
・dateコマンドでJSTが表示されるように設定
・/tomcat/9/libにmysql-connector-java-8.0.26.jarを追加
・RDS側のtime_zoneをAsia/Tokyoに設定

補足情報(FW/ツールのバージョンなど)

・mysql Ver 5.7.42(Amazon RDS)
・Apache Tomcat/9.0.75
・openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
・開放ポート:80,443,22, 8080(tomcat用), 3306(mysql用)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mike2mike4

2023/06/16 07:03

RDSを理解されてないように見受けられます。EC2にMySQLをインストールしたものはRDSではありません。ただのDBサーバです。 フルマネージドのRDSを使いたいのか、EC2上に構築したMySQLを使いたいのか明確にしてください。もしかし、EC2にインストールというのはMySQLクライアントをインストールと言いたかったのでしょうか?
irrvgkus01

2023/06/16 08:09

ご質問ありがとうございます。 RDSは必須ではないので、EC2上に構築したMySQLを使いたいのが近いです。 8.0.33-1.el7がMySQLクライアントをインストールされています。
mike2mike4

2023/06/16 08:36

こちら一行ですか? private final String JDBC_URL = "jdbc:mysql://localhost:3306/Attendance?characterEncoding=UTF8&serverTimezone=Asia/Tokyo"; もしそうなら、 ?characterEncoding=UTF8&serverTimezone=Asia/Tokyo をどのサイトで見つけたのか教えてください。例示されたサイトのURLの内容はRDSですよね。
mike2mike4

2023/06/16 08:44

localhostなので、Tomcatと同一のEC2リソース上にあるはずですが正しいですか?
irrvgkus01

2023/06/16 09:22

private final String JDBC_URL = "jdbc:mysql://localhost:3306/Attendance?characterEncoding=UTF8&serverTimezone=Asia/Tokyo";は一行です。 「serverTimezone=Asia/Tokyo」 https://itsakura.com/java-mysqlによると現在不要となったとのことです。 「characterEncoding=UTF8」 参考にしていた記事は削除されていたので、調べると文字化け防ぐためにつけることがあるようです。 Tomcatと同一のEC2リソース上にあります
irrvgkus01

2023/06/16 09:38

Tera Termから mysql -u root -pでmysqlにログインしてデータベースとテーブル作成しましたが、結果は変わりませんでした。
guest

回答2

0

使用できるのは、共有フォルダ内に存在する資材だけです。共有フォルダ内の資材を利用して、EclipseとTomcatを問題なく環境構築できました。
https://www.tellpopeyes.biz/

投稿2023/08/07 06:08

編集2023/08/08 04:14
victormccormick

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

無事接続できました!

「?characterEncoding=UTF8&serverTimezone=Asia/Tokyo」
の部分が不要となっていたようで、
mike2mike4さんの設定をすればUTF8も書く必要ありませんでした。
EC2上に構築したMySQLを使いたい場合はlocalhostで可能でした。
アクセス権の付与もデータベースに対して付与もしたらいけました。

ご協力ありがとうございました。

投稿2023/06/16 10:32

irrvgkus01

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mike2mike4

2023/06/16 14:00

解決してよかったです^_^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問