Apache/Tomcat ~Servlet プログラムの問題点について

Apache/Tomcat
~Servlet プログラムの問題点について~
2012 年 1 月 18 日
阪南大学 経営情報学部 経営情報学科
5108238 藤田 雄樹
1
目次
第1章
はじめに ............................................................................................................... 3
第2章
関連研究 ............................................................................................................... 4
2-1 Web アプリケーションの仕組み............................................................................ 4
2-1-1 Web サーバについて ................................................................................... 4
2-1-2 Web アプリケーションについて................................................................. 4
2-2 Apache について ................................................................................................... 6
2-2-1 Apache の歴史 ............................................................................................ 6
2-2-2 普及率と信頼性 ......................................................................................... 6
2-3 Tomcat について ................................................................................................... 7
第3章 JavaServlet について .............................................................................................. 8
3-1 JavaServlet について .......................................................................................... 8
3-2 JavaServlet の特徴 .............................................................................................. 8
3-2-1 コールバック方式...................................................................................... 9
第4章 研究内容の詳細 .......................................................................................................11
4-1 研究のきっかけ ...................................................................................................11
4-2 問題の詳細 ..........................................................................................................11
4-2-1 画像表示の実行結果 ................................................................................ 12
4-2-2 画像形式の変更 ....................................................................................... 14
4-2-3 サンプルコードの改変 ............................................................................ 15
4-3 問題の推測 ......................................................................................................... 16
第5章 考察 ........................................................................................................................ 17
5-1 Apache の問題点 ................................................................................................. 17
5-2 Apache の今後 ..................................................................................................... 17
第6章 まとめ .................................................................................................................... 18
参考文献 ............................................................................................................................. 189
謝辞 ....................................................................................................................................... 20
2
第1章 はじめに
現在 Web サーバソフトウェアとして利用されている Apache HTTP Server(以降 Apache)
は、世界でも高い普及率を獲得している。Apache が使用されるのは Tomcat ととの連携に
よる Web アプリケーション開発や Perl などの開発言語を使用した CGI の作成などが主で
ある。
近年、その Web アプリケーションを目にする機会も増えてきた。Web アプリケーションと
いうと実態が見えない、あるいは何か難しいような印象を受ける。しかし、実は我々が身
近に利用している掲示板やオンラインショッピング、今流行りの SNS なども Web アプリケ
ーションの 1 つの形である。今やほとんどの Web サイトに Web アプリケーションが使用さ
れていると言っても過言ではない。このように広く利用されている Web アプリケーション
だが、それらのシステムに使用されているのが Apache や Tomcat、JavaServlet 等の技術
である。
しかし、実際の Web アプリケーションや JavaServlet が具体的には一体どのようなもの
なのかは深く理解していないままであった。そのため、今回サンプルプログラムを利用し
て Web アプリケーションの開発を試みた。これによって Web アプリケーションそのものの
仕組みを確認するとともに、Apache や JavaServlet に関する知識と理解を深められると考
えたためである。
しかし、Web アプリケーションを開発する工程の途中で問題が発生した。高いシェア率
を誇る Apache や Tomcat を使用しているにも関わらず、開発工程にて問題が発生したとい
うことは、他の開発ユーザーにおいても同じ事例が発生している可能性があると考えた。
その後インターネットを利用して同様の事例が発生したかどうかについて調査してみた
が、全く同じ事例を見つけることができなかった。そのため、今後同じようなケースに陥
らないためにも、発生した問題について深く追求し、さらにその問題を回避する方法につ
いても考察していく。
本論文では、2章で Web アプリケーションの仕組みや Apache についてなどの関連研究
を記述し、3章では Servlet プログラムについて記述する。4章では実際に作成した作成
物や発生した問題の詳細について記述し、5章では4章を踏まえての今後の展開などにつ
いての考察を記述する。6章では考察を終えてのまとめを記述する。
3
第2章 関連研究
本章では、本研究に使用されたシステムと技術についての説明を行う。第1節では、
Web アプリケーションの仕組みについて記述する。第2節では Apache について記述し、第
3節では Tomcat について記述する。
2-1
Web アプリケーションの仕組み
Web アプリケーションについて説明を行う前に、アプリケーションの動作に必要な Web
サーバについて説明する。
リクエスト
要求
応答
レスポンス
Web サーバ
クライアント
図1
Web アプリケーションの処理
2-1-1 Web サーバについて
Web サーバの動作は2つであり、Web サーバに蓄積された HTML ファイルを Web ブラウザ
の要求に応じて HTTP のルールに則って返すことと、Web ブラウザから要求されたプログラ
ムを実行した結果を返すことの2つである(図1参照)。初期の Web サーバはあらかじめ
用意された HTML ファイルや画像データなどを送信する機能しか持たなかったが、技術発
達とともに JavaServlet や JSP などによって動的なコンテンツの提供も可能になった。
Web サーバの条件としては、グローバル IP アドレスが与えられ、常にインターネットに接
続されている状態である。その上で、Apache などの Web サーバソフトウェアがインストー
ルされ、起動中されているコンピュータである。この二つをクリアすれば、自宅のコンピ
ュータであろうが会社のコンピュータであろうが性能はどうあれ Web サーバにすることが
できる。Web サーバソフトウェアで代表的な物は、本研究でも使用された Apache の他に
Internet Information Service なども存在する。こちらはマイクロスフト社製の Windows
上でのみ動作する Web サーバソフトウェアである。対して Apache は Windows 以外にも Mac
や Linux でも動作するのが特徴的だと言える[1]。
2-1-2 Web アプリケーションについて
4
1章でも少し触れたが、SNS やショッピングサイトはプログラムが自動でユーザーに動
的なコンテンツをサービスとして提供している。これらの多くは Web アプリケーションに
よって実現されている。
一定時間や特定のアクセスに応じて、サーバ内にデータを受け取ることでプログラムが起
動し、自動的に Web ブラウザにデータを返答する。この一連の動作がコンピュータにイン
ストールされたアプリケーションのように動作することから Web アプリケーションと呼ば
れる。最大の特徴としては、コンピュータに様々なアプリケーションをインストールする
必要がないにも関わらず、Web ブラウザがインストールされているだけでアプリケーショ
ンと同等のサービスが受けられる点である。
本学でも Web アプリケーションを使用したシステムが採用されており、学内の HInT シ
ステムは Web アプリケーションによって成り立っている。ユーザー(この場合学生)が ID
とパスワードを入力すると、個人の時間割や予定、連絡事項などが表示される。これらは
Web アプリケーションによって実現された動的なコンテンツであり、HTML 単体などでは表
現できないものである。また、このような学校に対する Web アプリケーションによる独自
のシステムが使われ始めたのはつい最近であり、この点からも Web アプリケーションは
年々普及率が上がってきていることが伺える。
Web ブラウザを使うユーザーはそれのみで様々なコンテンツやサービスを受けられる利
点があり、今日では多数の Web サイトで使用されている。以下に Web アプリケーションを
使ったおもな Web サイトをカテゴリ別に記述する[2][3]。
(1) 検索エンジン……google、Yahoo!、msn など
(2) 電子掲示板……2 ちゃんねる、Yahoo!知恵袋など
(3) SNS……mixi、facebook、twitter など
(4) ショッピングサイト……Amazon、楽天市場など
表1 Web アプリケーションのメリット・デメリット
長所
クライアント側はWebブラウザがあれば
サービスを受けることができる
バージョンアップや更新は開発者側が行う
だけでよい
クライアント側は常に最新のサービスを利
用できる
短所
クライアント側がどのWebブラウザを使用
するかによって、動作が異なる場合がある
Webブラウザのみで提供が受けられるた
め、多数の利用者を想定した設計が必要
ネットワーク環境が必須条件になる
Web アプリケーションにもメリット、デメットがある。表1はそれらをまとめたもので
ある。上記にように、Web アプリケーションはコンピュータにインストールされたアプリ
ケーションに対し、Web ブラウザがインストールされていればサービスの提供を受けられ
る。そのため、バージョンアップが容易に行えるほか、不具合の修正なども開発者側が行
うだけでクライアント側に反映される。よって開発者側は管理が低コストで済むうえに、
クライアントは最新サービスを受けることができる。しかし、そのためにはネットワーク
環境が必須になるほか、使用する Web ブラウザによっては動作に差異が生じる可能性があ
る。そのため適切なサービスを受けられない可能性がある。
5
2-2
Apache について
Apache は 1 章でも少し触れたように、世界で最も使用されている Web サーバソフトウェ
アである。本研究で使用したものから改良され、従来から性能を高めつつ安定性を確保し
ている Ver2.0 と、最新機能が盛り込まれた Ver2.2 の2種類がサポートされている。現在
では本研究で使用した Ver1.3 のサポートは 2010 年 1 月をもって終了しており、2.2 系へ
の移行が推奨されている。
2-2-1 Apache の歴史
1995 年、当時の Web サーバソフトウェアは欧州原子核研究機構(CERN)が開発した
CREN HTTPd と米国立スーパーコンピュータ応用研究所(NCSA)が開発した NCSA HTTPd の
2種類が存在した。NCSA HTTPd は初の CGI を採用することなどによって高い普及率を誇っ
ていた。しかしその後はメンテナンスが行われなくなりしばらく放置されていたのだが、
数名の有志が改良とサポートを行うためのグループを作りはじめた。そのグループは自分
たちを Apache Group と名付けたのがそもそもの Apache という名前のはじまりである。し
かし、Apache Group も次第に Apache に興味を失ってしまい再び更新が途絶えた。
ところが 1999 年にユーザーの1人だった Brian Behlendorf が自分のサーバを使ってユ
ーザーのためのサポートを再開した。これが現在での Apache ソフトウェア財団の前身と
なる。余談ではあるが、現在の Apache のソースコードは Apache ソフトウェア財団によっ
て再構成されているため NCSA HTTPd のソースは残っていない[4]。
2-2-2 普及率と信頼性
Apache の高普及率の理由について Apache を使用するメリットから検討する。
Apache を利用するメリットとしては 2 種類ある。1つはフリーソフトウェアであるとい
うこと、もう1つはオープンソースソフトウェアであるということである。この2つがメ
リットの理由は、サーバソフトウェアは Web アプリケーション開発や Web サーバを運営す
る、あるいはユーザーに向けてのソフトウェアであるため有償のソフトウェアの場合が多
い。しかし Apache はフリーソフトウェアであるため、無料で開発や Web サーバの運営を
行うことができる。さらに、オープンソースソフトウェアでもあるため、誰でも開発・改
良・再配布が行える。これによって自分好みにカスタマイズすることも可能な上、セキュ
リティ面に対する対応が迅速に行える[5]。
このセキュリティ面の性能の高さこそが Apache 最大の魅力であり、Web サーバソフトウ
ェアにおいて最も重要なことである。Web サーバは長時間連続して(ほぼ半永久的に)稼
動しなければならないため、常に何らかの攻撃を受ける可能性がある。それゆえにあらゆ
る対抗策を講じる必要があるのだが、オープンソースによって無数のユーザーが経験した
危険や脅威の局面をフィードバックされているため、非常にセキュリティ性が高い。
これらが Apache の人気の要因であると考えられる。また、このセキュリティ性の高さ
や入手の容易さから企業でも Apache を採用している企業が多い。こういった点も信頼性
6
という面から個人ユーザーの人気を獲得していると考えられる。現に Yahoo!は 1996 年か
ら Apache を利用している。独自の改良はされているものの1日に数十億ものアクセスを
処理していることからも Apache の性能や信頼性の高さがうかがえる。
2-3
Tomcat について
Tomcat は、Jakarta プロジェクトと呼ばれる Java に関連するソフトウェアを開発する
プロジェクトのサブプロジェクトとして開発されたソフトウェアである[6]。JavaServlet、
JPS を処理するアプリケーションサーバであり、Tomcat 単体でも Web サーバとしての運用
が可能だが、一般的には Apache や IIS のプラグインとして利用されている。また、Java
の使用を決定する組織である JCP(JavaCommunityProcess)から、Servlet や JSP のリフ
ァ レ ンス 実装 とし て認め ら れた ソフ トウ ェアで あ り、 利用 者が 非常に 多 い。 Apache
Software License というライセンスに基づいて開発されており、誰でも無償で利用・改
変・再配布が可能である[7]。
本研究においても、図2のように Apache のプラグインとして利用していく。
図2 Apache Tomcat 起動画面
7
第3章
JavaServlet について
本章では、本研究の Web アプリケーションで使用されたプログラムとその仕様について
紹介する。第1節では Servlet についての具体的な内容を記述する。第2節ではどういっ
た特徴があるかを説明する。
3-1
JavaServlet について
Servlet と似た形式に Applet が存在する。Applet というのは、Web ブラウザ上で Java
プログラムを動作させるための仕組みであり、クライアント側で実行される形式である。
一方 Servlet は、Web サーバ側で Java プログラムを動作させる仕組みであり、サーバ側で
実行される形式である。この点が Servlet と Applet の違いの1つである。サーバ側で
Java プログラムを動作させるだけなら、JavaApplication を動作させる方法もある。しか
し、Servlet は Web アプリケーションでの使用をメインとして想定されているため、Web
サーバと連携しながらクライアントと情報のやり取りを行い、処理するのが特徴である
[8]。
通常、Web サイトは Web サーバ上のファイルを Web ブラウザがリクエストし、それに対
して Web サーバがリクエストされたファイルを Web ブラウザに返し、それが Web ページと
して表示されている。しかし Web サーバのみでサイトを作成している場合、その内容は固
定されたものになってしまう。つまりどのユーザーがいつどこでそのサイトにアクセスし
ても同じ内容のものしか提供できないということである。
しかしながら近年、インターネットの普及と技術の発達により、いわゆる静的なコンテ
ンツの提供だけでは多種多様なサービスを提供するのが困難になったため(第2章に記述
した Web アプリケーションを使用した主なサイトにあるような、検索エンジンや個人ユー
ザーに向けての動的なコンテンツ)、それらを解消するための仕組みの1つが
JavaServlet なのである。さらにこの JavaServlet は使用言語に文字通り Java を使用して
いるため、Java が持っている様々な利点を同じように持っている。たとえば、対応可能な
OS が幅広く、サーバ構築において信頼性の高い UNIX を OS として選択できることや、プロ
グラミングにおいてのセキュリティの高さ、堅牢さなどから Servlet が利用されることは
多い[9]。
つまり、Servlet の特徴は近年増えてきている動的なコンテンツを作成するのに都合が
よく、選択できる OS も幅広い。この汎用性によって高い信頼性とシェアを獲得している
のである。
3-2
JavaServlet の特徴
Servlet と用途が同じような技術には、Perl を使用した CGI、関数を主体とした PHP、
マイクロソフトが提供する ASP などがある。CGI などは、クライアント側からのリクエス
トがあるとその都度初期化を行い、新しくプロセスを構築する。それに対して Servlet は
8
一度起動されるとメモリに常駐し、リクエストがあるまで待機状態になる。2回目以降の
リクエストではプロセスではなく、スレッドを起動するため動作が軽快である。さらにそ
のスレッドはマルチスレッドに対応しており、複数のクライアントから同じリクエストが
行われても、最初のリクエストが終了せずに新たなクライアント用に別のスレッドを用意
する。これに新しくリクエスト割り当てることができるため応答処理の効率がよい[8]。
そのほかには、CGI 等と違う点としてはライフサイクルがあり、それに従いプログラムが
動作する。Servlet は記述されたメソッドをコンテナ(Servlet のエンジンのような部
分)がライフサイクルに則った形で呼び出すことで処理が行われる(図3参照)。
図3 Servlet のライフサイクル
出所)「J2EE 入門 2 章:サーブレット 富士通」
http://jp.fujitsu.com/solutions/sdas/technology/j2ee/02-servlet.html
このようにコンテナがプログラムを順番に実行する形式をコールバック方式と呼ぶ(コ
ールバック方式については3-2-1で詳しく記述する)。また、Servlet の一部として
JSP(JavaServerPages)がある。JSP は HTML に Java のコードを埋め込み実行結果を出力
させるものである。これが随所で触れている動的なコンテンツを実現させることができる
仕組みであり、クライアント側からの要求に応じた実行結果を Web ブラウザなどを通して
表示させることが可能になる。
3-2-1 コールバック方式
通常のプログラムは、全体の枠組みをプログラミングし、特定のモジュールはライブラ
リを利用する形式が一般的である。それに対し、コールバック方式はプログラム全体の枠
組みが提供され、その一部を独自にカスタマイズして機能を実装する形式である。Java で
は継承やオーバライドの機能によって、コールバック方式が実装できる。コールバック方
式は開発量が一般的な開発よりも少量で抑えられるため、生産性が向上する。しかし、前
述の通り全体の枠組みが決まっているため、実現可能な機能は限られてくるというデメリ
ットがあるため、目的によっては使用できないこともある[10]。
9
コールバック方式の枠組みとして Java の HttpServlet というクラスが使用される。枠
組みの指定は HttpServlet を継承することで行われる。主なメソッドとして以下のものが
あげられる。
(1) ・init メソッド・・・Servlet が起動された際に一度だけ呼び出される。データベー
スのオープンなどの実行環境を整える作業を記述する。
(2) ・service メソッド・・・クライアントからのリクエストがあると呼び出される。応
答内容や処理を記述する。
(3) ・doGet メソッド、doPost メソッド・・・Http リクエストには Get と Post の2種類
がある。一般的に service メソッドに定義するよりもこちらのメソッドに定義する。
(4) ・destroy メソッド・・・Servlet が破棄される前に一度だけ呼び出される。データ
ベースのクローズなど、終了処理を記述する。
10
第4章
研究内容の詳細
本章では、実際に研究した内容に関して記述していく。第1節では、研究のきっかけを
記述する。第2節では、研究に関連するシステムについて記述し、第3節では本研究の内
容について詳しく記述する。
4-1
研究のきっかけ
現在 Web アプリケーションは Web サイト作成において無くてはならない存在になりつつ
ある。そんな中、開発技術として最も高い普及率を獲得している技術を用いたにも関わら
ず、開発工程において問題が発生した事は例え些細なことであったとしても、社会的に原
因究明を行う価値があると考えた。またその原因そのものを理解することによって、Web
アプリケーション開発に関する知識と理解を深めると共に、今後の開発に役立てられるの
ではないかと考えた。
4-2
問題の詳細
本来は Web アプリケーションを開発する事が目的であったため、参考書籍[11]を元に
Web アプリケーションの開発に取り掛かった。Web アプリケーションを開発するにあたっ
て、まず、Servlet がどのようなものかを理解するためにサンプルプログラムを実行し、
Web ブラウザ上に指定された画像を表示させるというフェーズがあった。しかし、参考書
籍の通りにサンプルプログラムを実行したが、画像が適切に表示されないという問題が発
生した。その問題に対して次のようなアプローチを実施することにした。
(1) 指定の画像を別の形式の画像に変更する。
(2) 用意されたサンプルコードを改変する。
以降は以上の2点を踏まえた研究の手順と結果を記述していくこととする。
11
4-2-1 画像表示の実行結果
図4 サンプルプログラムのソースコード
図4は参考書籍に記載されているソースコードを抜粋したものである。これを実行する
と図5のようになるはずであった。
図5 Servlet 実行時の成功画面
しかし本研究にて実行した結果、図6のようになった。
12
図6 Servlet 実行時の失敗画面
図6を見てわかるように、画像が適切に表示されない現象に陥った。そこで原因を究明
するために画像が適切な認識をされているかをプロパティにて確認する。
図7 失敗時のプロパティ
図7はプロパティを確認した状態である。確認画面のように、プロトコル・種類・URL
などの項目が全て利用不可と表示されている。これは画像そのものが認識されていない可
能性があると判断し、ソースコードのパスが間違えているのではないかと考えた。
13
図8 失敗時のソースコードのパス指定部分
図8の下線部が、図4のソースコードで画像の場所をあらわすコードだが、
getRealPath()によって絶対パスを取得しているので、パスの間違いは考えられない。ま
た、画像も適切な場所に配置しておいたので間違えている可能性はなかった。そのためま
ずアプローチの(1)である、画像形式の変更から実施した。
4-2-2 画像形式の変更
指定された画像の形式が jpg だったが、何らかの設定により jpg 形式の画像が表示され
ない可能性を考え、gif 形式に画像を変更して再度実行した。
図9 gif 形式の実行結果
図9のように表示に成功した。画像が認識されているかどうか確認するためにプロパテ
ィを確認する。
14
図10 gif 形式のプロパティ
図10のようにプロパティも先ほどとは違い、プロトコル・種類・URL などが適切に表
示されている。この結果から画像形式を変更することによって、画像表示が適切にされな
い問題を回避することが確認できた。しかし、肝心の原因に関してはまだ不透明なままで
あったため、次のアプローチである(2)を実施する。
4-2-3 サンプルコードの改変
4-2-2の方法以外での回避方法を探ると共に、原因追求を目的としてサンプルコー
ドの改変を実施する。4-1-1では getRealPath()によって絶対パスを取得しているた
め、間違いはないと記述した。しかし、問題の明確な原因がまだ発覚していなかったため、
サンプルコード中のパスの記述方法を相対パスに変更する。すると、前述の図5のように
画像の表示に成功した。画像が適切に認識されているかどうかプロパティを確認する。
15
図11 相対パス実行時の成功画面
図11の通りプロパティも適切に表示されており、表示に成功した。この結果と4-2
-2の結果を踏まえると、画像形式に問題があるのではなくパスの記述方法に問題があっ
たことがわかる。
4-3
問題の推測
今回の研究では、結果として明確な原因を追求することが出来なかった。4-2の結果
を受けて様々な原因を推測した結果、Tomcat の設定に問題があるかもしれないと考えた。
Tomcat にはデフォルトで4つの xml ファイルが配置されている。この xml ファイルによっ
て絶対パスが何らかの形で取得できなくなっているのではないかという考えた。以下に4
つの xml ファイルの概要を記述する。
(1) server.xml・・・Tomcat 全体の設定ファイル。使用ポートや Web アプリケーショ
ンで使用する宣言なども記述されている。
(2) server-minimal.xml・・・ユーザー独自の server.xml を作成するためのファイ
ル。必要最低限の情報しか記載されていないため、サーバをカスタマイズする際
はこれを編集し、server.xml にリネームするのが簡単な方法である。
(3) tomcat-user.xml・・・ユーザーの権限情報が記述されている。
(4) web.xml・・・Tomcat で実行されるすべてのアプリケーションから参照される。
Servlet の定義などが記述されている。
以上の内容から web.xml または server.xml に何らかの形で障害が発生しているのでは
ないかという推測に至った。そのほかには、実行環境の問題やネットワークの問題も推測
したが、どちらも特殊な環境で実行したわけではなかったので問題の原因にはなりえない
という結論に至った。
16
第5章 考察
本章では、第4章を受けての様々な考察について記述する。第1節では使用した Apache
についての問題点に関して記述する。第2節では、今後の Apache の展望や今後の展開に
ついての考察を記述する。
5-1
Apache の問題点
Apache をオープンソースソフトウェアであり、そのメリットを第2章の Apache の項目
で記述してきたが、メリットだけではなくデメリットもあることが理解できた。その1つ
が今回本研究でも発生した、問題に対する対応ができないという点である。オープンソー
スソフトウェアは誰でも開発・改良・再配布が行える。しかし、利用する際のライセンス
にはいかなる場合も Apache ソフトウェア財団は責任を取らないという旨の記述がある。
今回のような軽い問題なら大きな被害にもならないが、コンピュータに重大な異常が発生
しても責任は誰も取らないし、取れないのである。そのため、今回の研究のように原因を
究明することができない可能性もある。
もう1つのデメリットとしては、設定方法や操作方法がまとめられていないという点で
ある。Apache は IIS などと比較しても GUI を持たない点や、幅広い開発言語に対応してい
るため、一定以上の知識と技術がなければ扱うことが難しい。本研究においての例として
複数の xml ファイルの内容を理解するに至らなかった点などがあげられる。Apache の利用
ユーザーによるコミュニティやまとめサイトなどに情報が載っている場合もあるが、それ
らにない問題に遭遇する可能性も十分考えられる。現に今回は調査したが同じ現象が発生
したケースは無かった。
5-2
Apache の今後
本論文で何度も触れている通り、Web アプリケーションは Web サイトにとってなくては
ならない存在になりつつある。今後は時代と共にさらに技術が発達し、より高度で多種多
様な動的コンテンツが増えてくると予想される。そうなると Web アプリケーションが利用
される頻度もより多くなり、Apache、Tomcat も改良が繰り返されることで今以上に性能が
高くなると考えられる。現段階ですでにフリーソフトウェアの中でもシェアウェアと遜色
のない高いパフォーマンスを獲得している Apache だが、今後の発展や進化にも目が離せ
ないソフトウェアだと言える。
17
第6章
まとめ
参考文献に基づいて Apache と Tomcat を使用して Web アプリケーション開発を実施した。
開発工程の序盤にて Servlet の理解を深める事が目的のサンプルコードを使用した jpg 形
式の画像を表示させる工程があった。しかしサンプルで用意されていた Servlet を実行し
ても指定された jpg 形式の画像が適切に表示されない問題が発生した。そこで本来は Web
アプリケーションの開発を目指す予定だったが、まずその問題を解決する方法について考
察することにした。問題の解決方法を考えた結果、画像形式を jpg から gif に変更するこ
とによって問題を回避することはできた。しかしそれだけでは問題そのものの原因がわか
らなかったため、あらかじめ用意されていたサンプルコード中の画像のパスが間違えてい
る可能性を考え、コード中のパスを絶対パス取得のコードから相対パスに改編を行った。
結果、gif 形式に変更する必要なく jpg 形式の画像を適切に表示させることに成功した。
しかし、以上2点のアプローチを行ったにも関わらず未だ原因に関しては何もわからな
かった。
今回の研究を終えての今後の課題としては、問題点の原因が一体何なのかを究明するこ
とである。まずは xml 形式のファイルを理解し、その内容からの原因の追及を行う。そし
て問題の根本を発見、そして理解したうえで本来の目的であった Web アプリケーションの
完成を目指す。それによって、実際に開発しなければ理解できない Web アプリケーション
の利点や問題点についてもさらに理解を深め、考察していく。
18
参考文献
1. 「Web アプリケーションの仕組み」
http://www.actlink.co.jp/text/php/01/01.html
2. 「Java による Web アプリケーション入門」
http://www.wakhok.ac.jp/~tomoharu/web2004/text/
3. 「ウェブアプリケーション – Wikipedia」
http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E
3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
4. 「Apache HTTP Server - Wikipedia」
http://ja.wikipedia.org/wiki/Apache_HTTP_Server
5. 「Apache でマイ web サーバーをつくろう!1」
http://linux-topics.com/setting/setting/003-apache/01-apache.htm
6. 「Tomcat とは【Apache Tomcat】 - 意味-解説-説明-定義 : IT 用語辞典」
http://e-words.jp/w/Tomcat.html
7. 「Tomcat とは - OSS 用語 Weblio 辞書」
http://www.weblio.jp/content/Tomcat
8. 「Java Solution FAQ:サーブレットとは何でしょうか?」
http://www.atmarkit.co.jp/fjava/javafaq/servlet/servlet01.html
9. 「ひよこサーブレット」
http://homepage3.nifty.com/uzblend/servlet/
10. 「J2EE 入門 2 章:サーブレット 富士通」
http://jp.fujitsu.com/solutions/sdas/technology/j2ee/02-servlet.html
11. Java による Web プログラミング-基礎からわかる完全入門- 著:柏原正三
19
謝辞
本論文を作成するにあたって、ご自身の研究プロジェクトにお誘い頂き、またその研究
中に様々なサポートをして頂いた福本昌生氏に感謝致します。研究中に発生した問題に関
してアドバイス頂いた尾花将輝氏に感謝します。卒業論文を完成させるにあたって期日直
前まで終了せず、一緒に卒論マラソンに参加した同ゼミの平健太氏、高萩大樹氏、竹恵佑
氏、原田敏志氏、山岡浩平氏に感謝します。そして最後に数多くの助言や丁寧な指導、ご
自身の仕事があるにもかかわらず添削やアドバイスを頂いた花川典子教授に感謝します。
お世話になりました。ありがとうございました。
20