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

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

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

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

Java

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

Q&A

解決済

1回答

611閲覧

Java電卓【ステータス500エラー】

jogduer

総合スコア14

Java EE

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

Java

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

0グッド

0クリップ

投稿2017/10/18 01:41

編集2017/10/18 01:54

###前提・実現したいこと

Eclipse環境で、Javaの電卓のwebアプリケーションを作成しています。 HTMLへ出力の機能を記述しているときに、エラーメッセージが発生しました。

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

HTTPステータス 500 - Internal Server Error Type Exception Report メッセージ サーブレットの実行により例外を投げました 説明 The server encountered an unexpected condition that prevented it from fulfilling the request. 例外 javax.servlet.ServletException: サーブレットの実行により例外を投げました org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 原因 java.lang.Error: Unresolved compilation problem: override cannot be resolved to a type pack2.DentakuFrame.doGet(DentakuFrame.java:22) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 注意 原因のすべてのスタックトレースは、のログに記録されています

###該当のソースコード

Java

1package pack2; 2 3//概要部分 4//APIをインポートをする 5 6import java.io.IOException; 7import java.io.PrintWriter; 8 9import javax.servlet.ServletException; 10import javax.servlet.http.HttpServlet; 11import javax.servlet.http.HttpServletRequest; 12import javax.servlet.http.HttpServletResponse; 13import javax.servlet.annotation.WebServlet; 14 15@WebServlet("/DentakuFrame.java") //URLパターンの設定 16 17//HttpServletの継承 18 19public class DentakuFrame extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 @override 23 protected void doGet(HttpServletRequest request, HttpServletResponse response) 24 throws ServletException, IOException{ 25 //処理内容を書く 26 } 27 28 @override 29 protected void doPost(HttpServletRequest request, HttpServletResponse response) 30 throws ServletException, IOException{ 31 //処理内容を書く 32 response.setContentType(“text/html; charset = UTF-8); //①ブラウザへ渡す情報の文字コードを指定 33 34 //②htmlを出力 35 PrintWriter out = response.getWriter(); 36 out.println("<html>"); 37 out.println("<head>"); 38 out.println("<title>"); 39 out.println("電卓"); 40 out.println("</title>"); 41 out.println("</head>"); 42 out.println("<body>"); 43 out.println("<p>Hellooooo!</p>"); 44 out.println("</body>"); 45 out.println("</html>"); 46 } 47 48 49} 50 51 52//レイアウト部分 53

###試したこと
ステータス500エラーについて調べ、サーバ側の何らかのミスによってリクエストに答えられない場合に出てくるエラーだとわかりました。
Eclipseの再起動を行いました。
コンパイルのエラーだとわかりました。

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーメッセージの「原因」のところにあるoverride cannot be resolved to a typeですが、このエラーメッセージは「overrideというのは型ではないです」といった意味です。しかし、それではおそらくわかりにくいだろうと思います。

原因はアノテーションの綴りミスです。

@override
ではなく、先頭'o'を大文字'O'にした
@Override
と書かなければなりません。


追記:
「対処法」だけしか書いてないのは今一つなので、少しだけミニ知識的なものをコメントします。

アノテーション「@Override」は詳しく書くと「@java.lang.Override」と同じ意味でして、アノテーション型java.lang.Override(ある特別な種類のクラス)として定義されています。つまり@の後ろの単語はクラス名に相当します。Javaでは「クラス名は先頭を大文字にする」習慣なので、アノテーションもまた「大文字で始まるのが普通である」ということを覚えておくとよいと思います。

クラス名やアノテーション型は先頭が大文字
ローカル変数は先頭が小文字
定数でないフィールド名は先頭が小文字
定数を表すフィールド名は先頭が大文字

といったJavaの習慣について、わきまえておくとコードを書く場合や読む場合の助けになるはずです。

投稿2017/10/18 02:03

編集2017/10/18 02:27
KSwordOfHaste

総合スコア18392

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

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

jogduer

2017/10/18 02:13

早速の回答ありがとうございます。 先頭の文字を大文字にしなければいけなかったんですね。
jogduer

2017/10/18 02:17

@Override に変更したらエラーが出ませんでした。 ありがとうございました。
jogduer

2017/10/18 02:51

追記ありがとうございます。 ・クラス名やアノテーション型は先頭が大文字 ・ローカル変数は先頭が小文字 ・定数出ないフィールド名は先頭が小文字 ・定数を表すフィールド名は先頭が大文字 ですね。 勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問