ITエンジニアのプレイングマネージャー化応援サイト

NetBeansに関するFAQ JavaEE編

新入社員の方からよくいただく質問と回答です。
※OSはWindows10、Product Version: NetBeans IDE Dev (Build 201804200002)で検証をしております。ご了承ください。

JavaEE編

 

1.Servletのファイルをコピーしたらサーブレットはもちろん、HTMLまで実行できなくなりました。出力ウインドウには「GlassFish Server 4.1.1, deploy, null, false (中略) モジュールはデプロイされませんでした。詳細は、サーバーのログ・ファイルを参照してください。」と表示されます。

2.Servletを実行するとブラウザに真っ白な画面が表示されました。

3.Servletをフォームから呼ばずに単独で実行するとブラウザに「HTTP Status 405 – HTTPのGETメソッドは、このURLではサポートされていません。」と表示されました。

4.グラスフィッシュのコンソールの情報量が多いのと文字が小さいので見にくいです。

5.warファイルで提出するように言われましたがどうしたらよいか分かりません。

6.JSPを実行しようとすると「(ファイル名)には、ISO-8859-1文字セットへの変換中に正しく変換されない可能性がある文字が含まれています。この文字セットでファイルを保存しますか?」と表示され、「はい」を押して実行するとブラウザで文字が?に文字化けしています。

7.「エラー: パッケージjavax.servlet.httpは存在しません」と表示され実行できません。

8.JSPで「pageEncoding=”UTF-8″, contentType charset=”UTF-8″」のように2つも文字コードを指定するのはなぜですか?

9.MySQLに接続できません。グラスフィッシュのログには「重大: java.sql.SQLNonTransientConnectionException: Cannot open file…」というメッセージが出ています。

10.サーブレットとJSPのファイルの指定方法が混乱します。

11.画面遷移の方法にはどのようなものがありますか?

12.MySQLで「CREATE DATABASE database_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;」のように書きました。最後のgeneral_ciとはどういう意味ですか?

13.サーブレットを実行しようとしたところ次のエラーが出て実行できません。「モジュールはデプロイされませんでした。詳細は、サーバーのログ・ファイルを参照してください。ビルド失敗」

 

1.Servletのファイルをコピーしたらサーブレットはもちろん、HTMLまで実行できなくなりました。出力ウインドウには「GlassFish Server 4.1.1, deploy, null, false (中略) モジュールはデプロイされませんでした。詳細は、サーバーのログ・ファイルを参照してください。」と表示されます。

ひょっとしたらサーブレットのファイルをコピーしませんでしたか?

恐らく、サーブレットファイルの「urlPatterns」が重複しています。

アプリケーションサーバからみて、同じ名前の2つのファイルがある状態になっていますので、urlPatternsの重複を解消してください。

2.Servletを実行するとブラウザに真っ白な画面が表示されました。

(準備中)

3.Servletをフォームから呼ばずに単独で実行するとブラウザに「HTTP Status 405 – HTTPのGETメソッドは、このURLではサポートされていません。」と表示されました。

ServletにdoGetメソッドがないのが原因です。

Servletを単独で実行すると呼ばれるメソッドはdoGetメソッドです。

おそらくそのServletにはdoPostメソッドしかないのではないでしょうか?

4.グラスフィッシュのコンソールの情報量が多いのと文字が小さいので見にくいです。

グラスフィッシュのコンソールを右クリックして「クリア」するとまっさらな画面になります。

「大きいフォント」を選べば文字が大きくなります

5.warファイルで提出するように言われましたがどうしたらよいか分かりません。

warファイルはJavaのwebアプリケーションで使用されるすべてのファイルをまとめたものです。中には、HTML、設定ファイル、Jar形式のファイル、画像音声ファイルなどが入ります。この形式であればコンテナに載せれば実行することができます。

warファイルの作り方は以下の通りです。

目的のプロジェクトを右クリック>消去してビルドを選択

コンソールにwarファイルの保存場所が以下のように表示されます。

Created dir: C:\Users\[ユーザー名]\Documents\NetBeansProjects\WebApplication1\dist

該当のフォルダに移動してwarファイルを入手してください。

6.JSPを実行しようとすると「(ファイル名)には、ISO-8859-1文字セットへの変換中に正しく変換されない可能性がある文字が含まれています。この文字セットでファイルを保存しますか?」と表示され、「はい」を押して実行するとブラウザで文字が?に文字化けしています。

pageEncodingを以下のようにUTF-8に指定します。

または、以下のようにcontentTypeのcharsetをUTF-8に指定します。

あるいは、web.xmlファイルに以下を追記します。

7.「エラー: パッケージjavax.servlet.httpは存在しません」と表示され実行できません。

新規プロジェクトを作成するときに「JavaWeb」で作成しましたか?

例えば、「Java」で作成してしまうとサーブレット関連のクラスが無いため上記のようなエラーメッセージが表示されます。

8.JSPで「pageEncoding=”UTF-8″, contentType charset=”UTF-8″」のように2つも文字コードを指定するのはなぜですか?

pageEncodingは、アプリケーションサーバ側でJSPをServletに変換するときにどの文字コードを使うかという指定。

contentTypeは、クライアント側で画面表示する際にどの文字コードを使うかという指定という違いがあります。

contentTypeの方が(HTML)コンテンツのタイプなので意味がとりやすいかと思います。

なお、2つの文字コードは統一するようにしましょう。

9.MySQLに接続できません。グラスフィッシュのログには「重大: java.sql.SQLNonTransientConnectionException: Cannot open file…」というメッセージが出ています。

MySQL8.xを使っているからかと思います。

バージョンが上がるとセキュリティ強度が上がって接続文字列に加える文字列が増えます。

接続文字列の?の後に「characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B9&rewriteBatchedStatements=true」と加えてみてください。

接続できない:”jdbc:mysql://localhost:3306/sample?serverTimezone=JST”

接続できる:”jdbc:mysql://localhost:3306/sample?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B9&rewriteBatchedStatements=true”

10.サーブレットとJSPのファイルの指定方法が混乱します。

当社の研修では、

サーブレットを指定するにはurlPatternsを使います。

一般的にJSP(HTML)を指定するには相対パスで指定します。

サーブレットのurlPatternsはそのサーブレットがどのような名前で呼ばれるかを決めるものです。

urlPatterns = {“/NewServlet”}のように頭に”/”が入ります。

そして、urlPatternsは物理的なファイルの場所とは関係がありません。

どこからでも「NewServlet」という名前で呼び出すことができます。(拡張子ナシ)

これはセキュリティのためです。

ユーザーが実行されているサーブレットのアドレスを見ても、どこにそのファイルがあるのかが隠されています。

JSPからサーブレットを呼ぶ場合には、/は抜いて指定します。

一方、JSP(HTML)は物理的なファイルの場所をパスで指定します。

ファイル同士の相対的な位置関係で指定するか、/がWebページのルートフォルダなので、そこからのパスを指定すれば良いでしょう。

実際にはurlPatternsの書き方は以下の4種類があります。

1.完全パス指定

2.パス指定

3.拡張子指定

4.サフィックス指定

余裕があれば調べてみてください。

11.画面遷移の方法にはどのようなものがありますか?

一般的によくある画面遷移の方法として次の3つをご紹介しておきます。

<!–通常のaタグ(ハイパーリンク)による画面遷移指定–>

goto

<!–JavaScript(onclick)を使用したinputタグよる画面遷移指定–>

<!–JavaScript(onclick)を使用したbuttonタグによる画面遷移指定–>

12.MySQLで「CREATE DATABASE database_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;」のように書きました。最後のgeneral_ciとはどういう意味ですか?

Case insensitiveの略です。

アルファベットの大文字小文字を区別しない方法で、データを並べ替えたり検索のマッチングを行う際に関係してきます。

他には、cs: Case sensitiveやbin: binaryがあります。

13.サーブレットを実行しようとしたところ次のエラーが出て実行できません。「モジュールはデプロイされませんでした。詳細は、サーバーのログ・ファイルを参照してください。ビルド失敗」

一つの可能性として、システムのプロキシの設定が邪魔をしている可能性があります。

メニューの「ツール」‐「オプション」‐「プロキシ設定」から以下の「オプション」のダイアログボックスで「接続のテスト」を試してください。

プロキシの設定画面

接続できないようでしたら念のためシステム管理者に確認のうえ、「プロキシなし」のラジオボタンにチェックを入れてみてください。

 

NetBeans IDEの説明へ戻る

新入社員研修ポータル

ZOOMを使った遠隔研修メニュー(PDFが開きます)

ZOOMを使った遠隔研修

新人エンジニアのためのJavaタイピングゲーム

新人プログラマのためのプログラミング動画

YouTubeチャンネル

新入社員研修ポータル

PAGETOP
Copyright © Say Consulting Group, Inc. All Rights Reserved.