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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Amazon EC2

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

1回答

9643閲覧

[Java]AWS EC2 デプロイ後の404エラーを解決したい

chanMiho

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Amazon EC2

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

1グッド

0クリップ

投稿2020/04/09 00:46

編集2020/04/09 01:57

前提・実現したいこと

自分で実装したJava(Spring Boot)プログラムのwarファイルを作成し、
AWSのEC2上にデプロイした際に下記エラーにどハマりしています。

EC2の環境構築や、デプロイなどはコチラを参考にしました。※RDSの設定のみ未だです。
具体的な手順
1.Eclipse→実装→Maven→War
2.EC2 LinuxにApacheインストール→Tomcat9インストール
3.WarをTomcatへデプロイ
4.配備後、404エラー

Springプログラム自体の設定か何かに、問題がありそうな感じですが、
ググってもなかなか検討つかないので、ご教示いただけると嬉しいです。
また、勉強不足で申し訳ないのですが、
TomcatやApacheのログの確認方法が、調べても出てこなかったので、参考サイトがあればぜひご教示いただきたいです。

試したこと

http://localhost:8080/~ にてSpringプログラムは問題なく起動している。

・warファイルの場所
/opt/apache-tomcat-9.0.33/webapps/~

・サーバー側と、アプリ側のTomcatと、Javaのバージョン確認。
→どちらも問題ないようでした。

・ApacheとTomcat、それぞれのテストページは問題なく表示される。

・Tomcatの再起動→変化なし

環境やバージョン

Java: 8
Spring Boot: 2.2.5
OS: Windows7
IDE: Eclipse 2019-12 (4.14.0)
Tera Term: 4.105
amazon_linux t2.micro

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

http://ec2-XX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com:8080/demo/

HTTPステータス 404 - 見つかりません。 タイプ ステータスレポート メッセージ /demo/ 説明 オリジンサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、またはそれが存在することを開示するつもりはありません。

ソースコード

pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <vaadin.version>14.1.18</vaadin.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jersey</artifactId> </dependency> ~一部省略~ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.11.0</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-bom</artifactId> <version>${vaadin.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <finalName>demo</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>false</executable> </configuration> </plugin> </plugins> </build> </project>
Ayaka_2020👍を押しています

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

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

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

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

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

guest

回答1

0

Webサーバーのセキュリティーグループで8080ポートは開放されていますか?
以下のようにポート8080をインバウンドルールに追加
イメージ説明

投稿2020/04/09 01:01

編集2020/04/09 01:04
encho

総合スコア182

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

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

chanMiho

2020/04/09 01:08 編集

はい、インバウンドルールの下記にて開放されています。 SSHのみ、参考書を参考にして、マイIPを設定しているのですがこれが何か関係してるのでしょうかね。。 タイプ:カスタムTCP プロトコル:TCP ポート範囲:8080 ソース:0.0.0.0/0、::/0 タイプ:HTTP プロトコル:TCP ポート範囲:80 ソース:0.0.0.0/0、::/0 タイプ:SSH プロトコル:TCP ポート範囲:22 ソース:XXX.XXX.XXX.XXX/32
encho

2020/04/09 01:10

springは問題なく起動できていますか?
MAKOTO_MOBY

2020/04/09 03:55

このようにアクセスしたいのでしょうか? browser -> apache httpd -> tomcat 上記の場合は、apache httpd の設定をしなければ、 httpd -> tomcat は通りませんが。
chanMiho

2020/04/09 06:00

>このようにアクセスしたいのでしょうか? >browser -> apache httpd -> tomcat →おっしゃる通りです。 >上記の通りなら、下記を参照されてはいかがでしょうか. >https://qiita.com/Dace_K/items/9d0419aefcb969335ca5 →ご提示いただき、有難うございます! 早速このページの内容(参照元を含め)を試しましたが、うまくいきません。 下記は手順とご質問です。 ご教示いただけますと、嬉しいです。 【Apacheのインストール】 ○インストールはもとより完了している。 ○SELINUXを無効化する。 「setenforce 0」とコマンドを入力すると、「setenforce: SELinux is disabled」と表示されたので、すでに無効化されていると解釈。 ○Firewallを無効化する。 そもそも「systemctl: command not found」のため、無効化できない。 調べましたが、他の手段がみつかりません。 ○テストページは表示されます。 【Tomcatのインストール】 こちらもインストールしてあり、テストページも表示される。 【Webアプリケーションマネージャを起動する】 今回GUIで管理する必要があまりないと考え、こちらは行っておりません。 【ApacheとTomcatの連携設定】 表記の通り、コメントアウトをはずしたり、ファイルにソースを書き込んだりして、Apacheの再起動をしましたが、「http://<IPADDR>/docs/」を表示した時に、「503 Service Temporarily Unavailable」と表示され、Tomcat側のページが表示さません。 これがサーバーが超負荷状態であることは、調べて理解できたのですが、それを解決する方法がいまいちわかりません。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問