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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

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

Q&A

解決済

3回答

2154閲覧

eclipseでサーブレットとweb.xmlを作成したのですが、localhost:8080/[プロジェクト名]/[サーブレット名]でerror

退会済みユーザー

退会済みユーザー

総合スコア0

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

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

0グッド

1クリップ

投稿2020/03/18 01:42

前提・実現したいこと

Javaでアプリ開発の勉強をしています。
現在「サーブレットをeclipseで作成」+「サーブレットを作成した動的プロジェクトにweb.xmlを作成」しました。

localhostでサーブレットを継承したclassファイルを表示させたいのです。

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

localhost:8080/[プロジェクト名]/[サーブレット名]

URLをこのように指定するとerror404となり、説明欄には「オリジンサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、またはそれが存在することを開示するつもりはありません。」と出てきてしまいます。

該当のソースコード

ファイル場所…Sample_5_02_1 / srs / work / SelfIntroduction

package work; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SelfIntroduction extends HttpServlet { private static final long serialVersionUID = 1L; public SelfIntroduction() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>自己紹介</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>自己紹介ページ</h1>"); out.println("<h2>MOCO</h2>"); out.println("<p>誕生</p>"); out.println("</body>"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ******************************************************************************** ついでにweb.xmlのファイル場所とコードも載せておきます。 Sample_5_02_1 / WebContent / WEBINF / web.xml ********************************************************************************* <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>Sample_5_02_1</display-name> <servlet> <servlet-name>SelfIntroduction</servlet-name> <servlet-class>work.SelfIntroduction</servlet-class> </servlet> <servlet-mapping> <servlet-name>SelfIntroduction</servlet-name> <url-pattern>SelfIntroduction</url-pattern> </servlet-mapping> </web-app>

試したこと

localhost:8080までのURLの指定をすると、Tomcatが表示されます。
今回お見せしているファイルコードにerrorっぽい赤線にょろにょろは出ていません。
eclipse、Java、すべて削除して再インストール、JDKとJREも再設定しましたが変わりませんでした。

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

eclipse 2019/12
Java versionは1.8.0_241
Tomcat 8.5.53

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

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

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

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

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

shinami

2020/03/19 01:08

> eclipse、Java、すべて削除して再インストール、JDKとJREも再設定しましたが変わりませんでした。 > ちなみに新しい問題なのですが、Tomcatが全く接続できなくなってしまいました。 インストールや設定はどうやって行ったのでしょうか? どのようにEclipseなどを導入しているのか分かりませんがEclipse Pleiades の Full Editionは使わないのですか?これは、これら全部入りの設定もされているのでEclipseで行うことと言えばServerプロジェクトの作成を行いそのServerにその動的Webプロジェクトを追加して起動すれば良いだけだったはずです。 個別に入れるにしてもEclipseもJDKもTomcatも.zip版で環境変数のPATHも設定しないやり方で私はやります。インストーラーではどこに何を入れているのか分からなくなりますのでアンインストールも削除したようでも何か残ってる可能性もありますし。まぁ個人的な意見ですが。
退会済みユーザー

退会済みユーザー

2020/03/19 13:12

ご回答いただき、ありがとうございます。 まだ知識が浅いのでFull Editionがどんなものなのかわからないのです(*_*; ほかの方法もあることはなんとなくは知っていたんですが、他の方法をわかりやすく詳しく説明できる材料がないと手に付けるのも怖くてできませんでした。。 今回shinami様がおっしゃる通りの方法もあるのかもしれませんが、例えばshinami様にその方法を詳しく説明させていただくというのは、あまりにも時間を奪ってしまうことになりかねないので、できませんでした((+_+)) ですが、なんとか今回のこの問題は解決しました! shinami様がおっしゃったことも頭に入れてまた何か問題が起きた時、解決の手がかりとさせていただきます^^
guest

回答3

0

この回答は無駄になったので、雑談にします。削除方法調べるのもめんどいので。。。

今回のこの質問は約1週間ほど悩みました。わりと1日中調べたり考えたりしてる日が3日くらいあったので…まぁでもトータルで24時間くらい悩んだのかもしれません。

勉強している参考動画とは別の参考動画を購入し、成功しているサンプルコードを入手し、なんとか解決に至ったので、やはり成功しているものの真似をするのが一番でしたね!

投稿2020/03/19 10:38

編集2020/03/19 13:26
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

今回、ゼロから環境構築できる参考動画を見ていたら、その環境からはしっかりと表示できていたので、大事な部分以外はコピペをすることで、とりあえずは一旦問題解決に至りました!

まだ文字化けするなどの問題は残っているのですが、その問題は別物と扱ってこれから解決していこうと思っています。※レスポンスの文字設定;charset=UTF-8を付け加えることで解決しました!

そしてどうしてこのように表記すると解決するのか、まだわかっていません。

皆様の回答は、私がまだ知らないことだらけなのでとても勉強になります!
問題解決のために回答いただいた皆様、お力を下さりありがとうございました!

******************************************************************************** classファイル ******************************************************************************** package work; //ここから import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class SelfIntroduction extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html;charset=UTF-8"); //※レスポンス文字設定 //ここまでの一式を変更 PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>自己紹介</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>自己紹介ページ</h1>"); out.println("<h2>MOCO</h2>"); out.println("<p>誕生</p>"); out.println("</body>"); out.println("</html>"); // 一応</html>が無かったので追記 } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ******************************************************************************** web.xml ******************************************************************************** //ここから <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> //ここまでの部分の宣言らしき部分を一式変更 <servlet> <servlet-name>SelfIntroduction</servlet-name> <servlet-class>work.SelfIntroduction</servlet-class> </servlet> <servlet-mapping> <servlet-name>SelfIntroduction</servlet-name> <url-pattern>/SelfIntroduction</url-pattern> // あと<url-pattern>タグ内のSelfIntroductionの前に/が無かったので追記 </servlet-mapping> </web-app>

投稿2020/03/19 10:21

編集2020/03/19 13:17
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

URLと呼び出すサーブレットのマッピングができていないので、@WebServletアノテーションでURLとサーブレットを紐付ければ行けるかと思います。

Java

1@WebServlet("/sample") 2public class SelfIntroduction extends HttpServlet {

localhost:8080/[アプリケーション名]/[WebServletの文字列]
localhost:8080/Sample_5_02_1/sample

投稿2020/03/18 03:47

storm3

総合スコア328

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

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

退会済みユーザー

退会済みユーザー

2020/03/19 00:46

すみません、昨日なるほど!と思いまして、その方法を試してみたのですが 変化はなく、、、新しい別の問題が山積みになって出てきてしまいました(-。-; なので復旧するまでしばらく、試すことがまだ出来ません。 ちなみに新しい問題なのですが、Tomcatが全く接続できなくなってしまいました。 ということなので、もう少し勉強してからまた戻ってこようと思います!(T . T)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問