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

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

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

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

1回答

33005閲覧

Java+Servletにおける「「The origin server did not find a current representation for the target...」エラーについて

Aya_nishimura

総合スコア16

Java EE

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

1クリップ

投稿2020/05/20 13:08

編集2020/05/25 08:29

RegisterUser.javaからエクリプスを起動すると
「The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.」
エラーが発生しています。サーブレットの教材のソースをそのまま貼り付けているので、パスの間違いはないと思っています。
正しく動かす(最初はregisterForm.jspに行く)にはどうすればいいのでしょうか?ご教授のほどお願いします。
ディレクトリ
イメージ説明
JAVAEE画面イメージ説明
User.java

package model; import java.io.Serializable; public class User implements Serializable { private String id; private String name; private String pass; public User() { } public User(String id, String name, String pass) { this.id = id; this.name = name; this.pass = pass; } public String getId() { return id; } public String getPass() { return pass; } public String getName() { return name; } }

RegisterUserLogic.java

package model; public class RegisterUserLogic { public boolean execute(User user) { // 登録処理(サンプルでは登録処理を行わない) return true; } }

RegisterUser.java

package servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import model.RegisterUserLogic; import model.User; @WebServlet("/RegisterUser") public class RegisterUser extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // フォワード先 String forwardPath = null; // サーブレットクラスの動作を決定する「action」の値を // リクエストパラメータから取得 String action = request.getParameter("action"); // 「登録の開始」をリクエストされたときの処理 if (action == null) { // フォワード先を設定 forwardPath = "/WEB-INF/jsp/registerForm.jsp"; } // 登録確認画面から「登録実行」をリクエストされたときの処理 else if (action.equals("done")) { // セッションスコープに保存された登録ユーザ HttpSession session = request.getSession(); User registerUser = (User) session.getAttribute("registerUser"); // 登録処理の呼び出し RegisterUserLogic logic = new RegisterUserLogic(); logic.execute(registerUser); // 不要となったセッションスコープ内のインスタンスを削除 session.removeAttribute("registerUser"); // 登録後のフォワード先を設定 forwardPath = "/WEB-INF/jsp/registerDone.jsp"; } // 設定されたフォワード先にフォワード RequestDispatcher dispatcher = request.getRequestDispatcher(forwardPath); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // リクエストパラメータの取得 request.setCharacterEncoding("UTF-8"); String id = request.getParameter("id"); String name = request.getParameter("name"); String pass = request.getParameter("pass"); // 登録するユーザーの情報を設定 User registerUser = new User(id, name, pass); // セッションスコープに登録ユーザーを保存 HttpSession session = request.getSession(); session.setAttribute("registerUser", registerUser); // フォワード RequestDispatcher dispatcher = request.getRequestDispatcher ("/WEB-INF/jsp/registerConfirm.jsp"); dispatcher.forward(request, response); } }

registerForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ユーザー登録</title> </head> <body> <form action="/example/RegisterUser" method="post"> ログインID:<input type="text" name="id"><br> パスワード:<input type="password" name="pass"><br> 名前:<input type="text" name="name"><br> <input type="submit" value="確認"> </form> </body> </html>

registerDone.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ユーザー登録</title> </head> <body> <p>登録完了しました</p> <a href="/example/RegisterUser">戻る</a></body> </html>

registerConfirm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="model.User" %> <% User registerUser = (User) session.getAttribute("registerUser"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ユーザー登録</title> </head> <body> <p>下記のユーザーを登録します</p> <p> ログインID:<%= registerUser.getId() %><br> 名前:<%= registerUser.getName() %><br> </p> <a href="/example/RegisterUser">戻る</a> <a href="/example/RegisterUser?action=done">登録</a> </body> </html>

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

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

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

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

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

Yasumichi

2020/05/20 13:43

はずしているかもしれませんが。 getRequestDispatcher の時に "/WEB-INF/" は要らない気も。あと、JSP から実行するとどうなりますか?
Aya_nishimura

2020/05/22 05:24 編集

ご回答いただきありがとうございます。 getRequestDispatcher の "/WEB-INF/"を外しましたが以下のようなエラーになります。 HTTPステータス 404 - Not Found Type ステータスレポート
Aya_nishimura

2020/05/22 05:24 編集

また、jspからの実行ですが今回は「registerConfirm.jsp」を実行しました。 しかし、下記のようなエラーになります。 何が違うのかさっぱりわからないです。 何卒お力をお貸しください。
Yasumichi

2020/05/20 14:16

パースペクティブを JavaEE に変えて、デプロイメント記述子→Servlet のマッピングがどう認識されているか、見てもらえますか?
Yasumichi

2020/05/20 14:17

ちなみにサーバーは Tomcat ですか?
Yasumichi

2020/05/20 14:22

ああ、 "/WEB-INF/" に置いているなら、 "/WEB-INF/"は要りますね。
Aya_nishimura

2020/05/20 14:23

ご回答ありがとうございます。 「デプロイメント記述子→Servletのマッピング 」について理解ができませんでした。 パースペクティブをJavaEEに変更しました。 また、その画像を乗せましたので、ご確認いただきたいと思います。 また、サーバはアパッチトムキャットです。 ちなみに、別のプロジェクトでは問題なく開いてます。
Aya_nishimura

2020/05/20 14:25

「/WEB-INF/」のある形に戻しましたが、やはりエラーになります。 エラー内容は全く同じです。
Aya_nishimura

2020/05/20 14:31

ご回答ありがとうございます。 画像まで載せていただき、非常にわかりやすかったです。 画像を編集して、載せましたのでご確認お願いします。
Yasumichi

2020/05/20 14:32

あと、Tomcat から リソースを除去して、Tomcat を停止してから実行しても同様でしょうか? もし、web.xml も作成されているようなら、そちらも開示してください。 以下のような例もありました。 Eclipse - Eclipse + Tomcat 404エラーでlocalhost 表示ができない|teratail https://teratail.com/questions/209738
Yasumichi

2020/05/20 14:33

おしい、サーブレットのマッピングの子供が見たかったです。
Aya_nishimura

2020/05/20 14:35

失礼しました!急ぎで再度画像の編集を行いました。
Aya_nishimura

2020/05/20 14:37

リソースの削除と、トムキャットの停止について承知しました。調べながら行ってみます。 また、web.xmlを私から作成したことはありません。
Yasumichi

2020/05/20 14:42

Tomcat のバージョン、分かりますか?Glassfish 環境では、頂いたソースで問題ありませんでした。
Aya_nishimura

2020/05/20 14:46

すみません。今動作したら正常に動きました。 しかし、原因が不明なためこれはこれで困ります…(笑) この期間に行った作業としてはEEの方で赤色の停止ボタンを押しました(stop ローカルホストの~) リソースの削除は行っていません。 EEではない方では、ソースの変更を行ったら、一度停止をしてから起動を行うようにしてました。 javaとjavaeeの停止ボタンはまた意味合いが違うのでしょうか・・・?
Yasumichi

2020/05/20 14:50

結構、リソースの除去や停止を行わずに使っているとおかしな動きをすることがあります。 多少、面倒ですけど、できるだけ、リソースの除去、サーバーの停止をするようにしています。
Aya_nishimura

2020/05/20 14:54

ありがとうございます。今後はサーバー停止など行っていきます。 また 「コンソールにある終了ボタン」と「(stop ローカルホストの~)の停止ボタン」は別物という認識でいいでしょうか・・・? 今後同じような事があれば、終了ボタンではなく停止ボタンを押すべきだと思ったので。 ただアイコンが同じ赤色の四角なので同じなのかなと疑問に感じてます。
Yasumichi

2020/05/20 14:58

一緒だと思います。マウスオーバーした時のポップアップは一緒ですよね?
Aya_nishimura

2020/05/20 15:01

ポップアップは違います。 「終了」と「stopローカルホストのtomcat8(java8)」になります。
Yasumichi

2020/05/20 15:20

それは別物ぽいっですね。
Aya_nishimura

2020/05/20 18:36

そうですよね。ご回答ありがとうございました。非常に助かりました!
Yasumichi

2020/05/20 21:04

とりあえず、解決でよろしいでしょうか?問題がなければ、解決済みにしましょう。
Aya_nishimura

2020/05/20 21:41

是非、ベストアンサーにしたいと考えています。
guest

回答1

0

ベストアンサー

「質問への追記・修正」からの転記になります。

提示されたソースを当方で動作させたところ、同様の事象は発生しませんでした。

一度、Tomcat から リソースを除去して、Tomcat を停止してから実行してみてください。

当方、リソースの除去や停止を行わずに作業を続けていると予期の通りに動かない事象を何度か経験しております。

多少、面倒ですけど、できるだけ、リソースの除去、サーバーの停止をするようにしています。

投稿2020/05/20 21:49

Yasumichi

総合スコア1773

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問