適当に哲学書とやらを読んでみる

天の孔雀的、英語の本かなり意訳読み

Struts2

[ リスト | 詳細 ]

記事検索
検索

全2ページ

[1] [2]

[ 次のページ ]

この手の本は読んでいるだけでは、ぜんぜん見当がつかないので、
とりあえず、コーディングしてみることにした。


で、速攻つまづいた。

つまづいたのは、web.xmlのfilter要素

Struts2 in Action での記述
<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  <init-param>
    <param-name>actionPackage</param-name>
    <param-value>任意のパッケージ</param-value>
  </init-param>
</filter>

いつもこの部分で、落ちている。
tomcatのfilter Startで落ちる。

ネットの情報を一応調べてみたところ、
FilterDispatcherはStruts2.1〜は非推奨となり、org.apache.struts2.dispatcher.ng.filter.StrutsPreparedAndExecuteFilterに変更となっていました。

で、とりあえず、解決はしたものの、
今度は
 Unable to load bean: type:com.opensymphony.xwork2.util.ValueStackFactory class:com.opensymphony.xwork2.ognl.OgnlValueStackFactory - bean - jar:file:/.../WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:71:140
なるエラーが…orz
まだまだStruts2を動かすには時間がかかりそうです。




開く トラックバック(1)

ハイパー・テキスト・トランスファー・プロトコル(HTTP)
ほとんどのWebアプリケーションはHTTPの上にて動作している。この方式ではただ一往復だけ、クライアントとサーバーとの間でメッセージ交換が行われるだけである。通常、クライアントというのはWebブラウザーのことであり、サーバーはWebサーバーあるいはアプリケーションサーバーである。通信はクライアントから始まる。クライアントは特定の情報源に対して request を送信する。ここでの情報源とはサーバーのファイルシステム内にある静的なHTML文書かも知れないし、何がしかの機能により動的に作成される文書かもしれない。

多くのことがHTTPについては言いうる。そこで、Webアプリケーションに関する重要な機能について話の的を絞ることにしたい。まず注意しておきたいのは、従来よりHTTPがWebアプリケーション開発者が望むような形で設計されていないということである。これは、静的なHTML文書のやり取りが基本的な設計であるということである。すべてのHTTP上で稼動するWebアプリケーションはこの(静的な文書のやり取りしか想定されていないHTTPの設計と動的に文書を作成するWebアプリケーションの間にある)矛盾を考慮しなければならない。

WebアプリケーションにとってHTTPには二つの課題がある。ひとつは情報交換が一往復で完結するということ、そしてテキストベースであるというこの二点である。一往復で完結することとはつまり、受け付けるrequestの一つ一つについてそれらがどこから発生したものかを考慮しないということである。それぞれのRequestはサーバーには初めて受け付けるRequestであるかのように処理される。HTTPサーバーはどこからきたrequestなのか、特定の端末からきた論理的に異なる複数のrequestなのかを管理する機能を提供していない。サーバーはクライアントのアドレスは保持している。しかし、それは要求された文書を返す場合にのみ使われる。もし、あるクライアントが何度かことなる文書を要求したとしても、サーバーは同一のクライアントが訪れたということを感知できない。

しかし、複雑なWebアプリケーションで、複雑な利用場面が想定される場合には、これでは困る。単純な、よくある安全なWebアプリケーションについて想定しよう。安全なアプリケーションにはユーザーの認証が要求される。これを実現するためには、ユーザー名称とパスワードを送るrequestが、かならずその後に続く一連のユーザーとのやり取りと関連付けられなければならない。複数のrequestの関連を管理できないようでは、現代のWebアプリケーションが想定する利用状況を実現することは不可能である。この問題はすべての現代Webアプリケーションにとっては解決すべき課題であるのだ。

同様にこまったことに、HTTPはテキストベースでやり取りが行われている。テキストベースの技術をJavaのような型にはまった技術に適合させることは、データを結びつける非常に大変な量の作業を生み出す。HTTPのformのrequestでは、すべてのデータはテキストの形で表される。この仕方においては、この形式のデータはJavaのデータタイプに関連付けられるにちがいない。むしろこのデータ変換プロセスはrequest処理のプロセスの最初と最後に発生する。サーバーに届いたrequestパラメータはJavaの動作環境に合わせた形に変換され、クライアントに返される場合には、JavaからHTML形式でデータを引き出すことになる。これはロケット発射の準備作業などにくらべれば、大量のくだらない作業がWebアプリケーションに多く発生してしまう。こういった方法は、エラーの発生確立が増えるし、時間が無駄に過ぎていくだけである。



あいかわらず逐語訳かつ意(誤解つき)訳な第五回です。

第一章第一節第一項 Webを使ってアプリケーションを作ることについて
今日では多くのJava開発者がWebアプリケーションの開発でキャリアを積んでいるが、再度自らが働いている土台が何であることを再考することは有益である。しっかりしたStruts2が登場してきた背景を理解することは、自信をもってフレームワークを選定することができるようになるであろう。もちろん、使う言葉の意味を定めておくことは、本書での理解を助けになるであろう。

Webアプリケーションは単純には、やや複雑なこともあるが、Web上で稼動するアプリケーションである。インターネットの速度、接続環境、クライアント/サーバー間の技術が高速に進歩するのと歩みを合わせるように、Webはさまざまなアプリケーションを構築するための基盤になってきた。それは標準的な企業戦略上の課題解決から、個人向けソフトウェアまでそろっている。最近のWebアプリケーションは従来のデスクトップアプリケーションに機能的にも使用感的にも取って代わるようなものが次々と出ている。しかし、Webアプリケーションが多機能なものになっていくにもかかわらず、これらのアプリケーションの基礎部分はほとんど変わっていない。何度も再利用できるものとなっている。Struts2のようなフレームワークは開発者をWebアプリケーションの主要な再利用可能部品を作るという飽き飽きするような作業から開放してくれる。

第一章第一節第二項 基盤の解説
Webアプリケーションの基盤となっている一つ一つの部品の概要を見てみることにしよう。ひとつにはWebは単純な働きをするものである。良い仕組みなどがそうであるが、単純なものでなければ、長続きするものではない。図1.1を見てほしい。これはStruts2が使用される環境を図示したものである。

イメージ 1

図1.1からわかるように、Struts2はほかの主要な技術の上に構築されている。Struts2の中心部にはクライアント-サーバー間のメッセージ交換であるHTTPが備わっている。Java Serverlet APIは低いプロトコルレベルのHTTPのデータ交換をJavaで扱えるようにする。もちろん、WebアプリケーションのプログラムをサーブレットAPIに近いコードを直接記述して構築することも可能である。しかし、よい作法とは考えられない。Struts2はサーブレットAPIを使用して、開発者がサーブレットAPIを直接記述することがないようにしている。Servelet APIをStruts2アプリケーションから分離することはよい考えなのであるのは間違いではないが、基礎的な技術に関する知識がないままStruts2の開発に入るのは、やや横柄な感じがする。以下に示す二ブロックでHTTPとJava Servletとのより適切な説明を試みる。
















今日は第一章の第二節まで。
結構逐語訳。

Chapter 1 Sturts 2: the modern web application framework

本章の概要
・Web上でアプリケーションを構築することについて
・Webフレームワーク利用について
・Struts2の概要
・InterceptorとValueStackについて
最近のWebアプリケーションは複雑な技術的な状況の中にある。読者の皆さんはJava言語についての本とか、特定のAPIに関する本、あるいはライブラリーに関する本だとかの単純なテーマの本を読まれたことがあるかもしれない。この本はStruts2に関する本であり、これはWebアプリケーションフレームワークであり、JavaEEプラットフォームの大きな範囲におよぶものである。したがって、この本は広範囲な技術を取り扱っており、それはJavaEEのかなりの部分を占めている。

その複雑さもあるので、Struts2が依存する主要な技術について解説を始めることにしたい。Struts2の仕組みに従うことで製品性能を向上させる。また、これまでに開発者を困らせてきた作業を自動化することができる。しかし著者の思うところでは、これらの長所は技術的な背景を理解することでこそ得られるものである。これらの背景は技術がますます不明瞭になってきているのである。本章の前半ではStruts2が生まれた背景を扱う。これらの内容を熟知している読者の皆さんは、ためらわず読み飛ばしてほしい。

重要な基盤の説明の後に、われわれはStruts2そのものの概要まで一気に話を展開させていく。MVCモデルがどのようにしてStruts2の構造に与するのかを説明する。次に、詳細にフレームワークがリクエストを処理する様を紹介する。そうしたら、読者の皆さんは第二章Hello-Worldへの準備は万端である。

第一章第一節 Webアプリケーションについて速習
この節では簡単にWebアプリケーションを取り巻く技術的な背景を紹介する。Webアプリケーションがどういった基盤の上に構築されるのかを見ていく。またWebアプリケーションがリクエストを処理する際の決まりきった働きについても見ていく。もし読者の方でこれらの話に精通しているなら、Struts2の機構的な概要が書かれている第一章三節に進んでほしい。しかし、これから示す話では著者たちがWebアプリケーションをどのように考えているかが反映されている。(だから読んでほしいっていうことです、たぶん)。

第一章第一節第一項 Webを使ってアプリケーションを作ることについて

…眠いので続きは明日。






ほぼ逐語訳です。

PART 1 STRUTS 2 : A BRAND NEW FRAMEWORK

第一パラグラフ
Struts2は本当に新たなフレームワークである。第二世代のWebアプリケーションフレームワークとみなしてよいだろう。最先端の技術を利用しているのに加え、Struts2では技術的な進化を遂げており、これまでの開発者にはなじみのない要素がいくつかある。そこで少し時間をかけて、最初の二章にて新しいフレームワークを読者の皆さんに丁寧に説明する。

第二パラグラフ
第一章では概要を提示する。フレームワークそのものを説明する前に、Struts2のようなJava Webアプリケーションフレームワークが必要とされるにいたった技術的な背景を説明する。これらの説明をありきたりの話と感じるものもいるだろうし、おそらく初心者にとっては敷居の高いものになるかもしれない。ここでの目的は、今後本書を読み進めるにあたって次第に理解されるであろう技術的な側面を手短に紹介することである。過去の背景や、Struts2の概要を手短に説明する予定である。ここで触れる洗練された技術はこのフレームワークの特質の一部である。

第三パラグラフ
これらの前置きでは遠回りをしてしまうが、第二章ではin Actionシリーズの真髄を満たすように軌道修正する。第二章では抽象的な説明から、Hello-Worldサンプルをもちいて具体的な説明に移る。そしてStruts2アプリケーションをすぐにでも動かせるようにする。気の早い読者の方は第一章を読み飛ばしてもらっても全然かまわない。



開く トラックバック(1)

全2ページ

[1] [2]

[ 次のページ ]


よしもとブログランキング

もっと見る

プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事