過去記事の使い回しです。記述内容が古いので注意してください。最新のstrutsは2.2.3.1です。
環境の説明
Struts2を使ってみるを参考にします。ただし対象がstruts 2.0.11で少し古いので、2.2.1.1に合わせるための内容を記述します。
OS | WindowsXP SP3 | - |
JAVA | 1.6.0_22-b04 | - |
Tomcat | 6.0.30 | Apache Tomcat 6 Downloadsから32-bit/64-bit Windows Service Installer |
Eclipese | Helios Service Release 1 | Eclipse DownloadsからEclipse IDE for Java Developers |
Eclipse Tomcatプラグイン | 3.2.1 | EclipseTotale - Sysdeo Tomcat Launcher PluginからtomcatPluginV321.zip |
Struts | 2.2.1.1 | Download a ReleaseからFull Distribution |
Javassist | 3.14.0.GA | JBoss Community - Browse /Javassist at SourceForge.netから3.14.0.GA |
Tomcatインストール
Tomcatしか使わないのでxampp入れません。
インストール
apache-tomcat-6.0.30.exeを実行しウィザードに従いインストールします。Tomcatの管理画面に入るためのユーザ名とパスワードを指定します。その他の設定はすべてデフォルトで問題ありません。
インストール完了時に起動してるので、ブラウザを立ち上げて http://localhost:8080/ にアクセスし表示されれば成功です。
Strutsサンプルアプリでの動作確認
- struts-2.2.1.1-all.zipを解凍し「struts-2.2.1.1\apps\struts2-showcase.war」を「C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps」にコピーします。
- http://localhost:8080/ にアクセスしTomcatメニュー画面の左メニューから「Tomcat Manager」を選択します。インストール時に指定したユーザとパスワードを入力して「OK」ボタンを押して下さい。「Tomcat Webアプリケーションマネージャ」が表示されます。
- 「アプリケーション」一覧表の中に「/struts2-showcase」というパスがあり、実行中ステータスがtrueであれば動作可能です。このパスをクリックするとサンプルアプリケーションを実行できます。
Eclipseインストール
日本語化しません。
インストール
eclipse-java-helios-SR1-win32.zipを解凍します。
pluginsにtomcatPluginV321.zipを解凍してできるcom.sysdeo.eclipse.tomcat_3.2.1フォルダをコピーします。
「〜\eclipse\plugins\com.sysdeo.eclipse.tomcat_3.2.1」となります。
Tomcatプロジェクトの作成と配置
eclipseでTomcatプロジェクトを作成し、Tomcat上で実行できるように設定します。
プロジェクトの作成
プロジェクトの設定
プロジェクトのプロパティー設定をします。
プロジェクトの配置
eclipse左側にある「パッケージエクスプローラ」上の「HelloWorld」を右クリックして、「Tomcatプロジェクト」−「プロジェクト設定に従いWARファイルを作成」を選択。
「操作が成功しました」のダイアログが表示されば成功です。
配置の確認
- eclipseのメニューから、「Tomact」−「Tomcat 起動」を選択します。
- Consoleに起動ログが表示され最後に「情報: Server startup in xxxxx ms」と表示されます。
- http://localhost:8080/manager/htmlにアクセスし「アプリケーション」一覧表の中に「/HelloWorld」というパスがあれば、配置成功です。
- このパスをクリックすると表示ファイルがないため404エラーが表示されます。
ページを作成
index.htmlの作成
静的なページを追加します。
- eclipseのメニューから、「File」−「New」−「File」を選択します。
- Enter or select the parent folder:欄に「HelloWorld」を入力します。
- File name欄に「index.html」を入力し、「Finish」を押下します。
- 次の内容を記入します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> <title>Hello World</title> </head> <body> こんにちは </body> </html>
再度「プロジェクト設定に従いWARファイルを作成」を行い、http://localhost:8080/HelloWorld/にアクセスすると「こんにちわ」と表示されます。
index.jspの作成
JSPのスクリプトを使用したページを追加します。
- eclipseのメニューから、「File」−「New」−「File」を選択します。
- Enter or select the parent folder:欄に「HelloWorld」を入力します。
- File name欄に「index.jsp」を入力し、「Finish」を押下します。
- 次の内容を記入します。
<%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> <title>Hello World</title> </head> <body> <%out.print("こんにちはJSP");%> </body> </html>
再度「プロジェクト設定に従いWARファイルを作成」を行い、http://localhost:8080/HelloWorld/index.jspにアクセスすると「こんにちはJSP」と表示されます。
web.xmlの設定
JavaEEではweb.xmlファイルでアプリケーションの設定を書きます。ここではstruts2.2用の設定をします。
web.xmlの作成
- eclipseのメニューから、「File」−「New」−「File」を選択します。
- Enter or select the parent folder:欄に「HelloWorld/WEB-INF」を入力します。
- File name欄に「web.xml」を入力し、「Finish」を押下します。
- 次の内容を記入します。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
「プロジェクト設定に従いWARファイルを作成」を行い、Tomcatを起動すると次のようなエラーが表示されます。
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
これは必要なjarがlibフォルダに入ってないため発生します。
ライブラリファイルの追加
「WEB-INF/lib」フォルダ配下に、Struts2のライブラリファイルをコピーします。
struts-2.2.1.1-all.zipを解凍しlibディレクトリの中から、次のファイルをeclipse上の「WEB-INF/lib」ディレクトリ配下にドラッグ&ドロップしてコピーします。
- commons-fileupload-1.2.1.jar
- commons-io-1.3.2.jar
- freemarker-2.3.16.jar
- ognl-3.0.jar
- struts2-core-2.2.1.1.jar
- xwork-core-2.2.1.1.jar
javassist-3.14.0-GA.zipを解凍しjavassist.jarを「WEB-INF/lib」ディレクトリにコピーします。
再度「プロジェクト設定に従いWARファイルを作成」を行い、Tomcatを起動しエラーが消えたことを確認してください。
アクションの作成
struts.xmlにurlに対応するアクションクラスを設定します。
/example/Top.actionを参照した際に、Top.javaが実行され、実行結果が"success"の場合index.jspが表示されるように設定します。
- eclipseのメニューから、「File」−「New」−「File」を選択します。
- Enter or select the parent folder:欄に「HelloWorld/WEB-INF/src」を入力します。
- File name欄に「struts.xml」を入力し、「Finish」を押下します。
- 次の内容を記入します。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="example" namespace="/example" extends="struts-default"> <action name="Top" class="example.Top"> <result name="success" >/index.jsp</result> </action> </package> </struts>
パッケージの作成
- eclipseのメニューから、「File」−「New」−「Class」を選択します。
- Source folder:欄に「HelloWorld/WEB-INF/src」を入力します。
- Package:欄に「example」を入力します。
- Name:欄に「Top」を入力し、「Finish」を押下します。
アクションクラスの作成
- メニューから、「File」−「New」−「Package」を選択します。
- Source folder:欄に「HelloWorld/WEB-INF/src」を入力します。
- Name:欄に「example」を入力し、「Finish」を押下します。
- 次の内容を記入します。
package example; public class Top { public String execute() throws Exception { return "success"; } }
動作確認
- 「プロジェクト設定に従いWARファイルを作成」を行い、Tomcatを起動します。
- http://localhost:8080/HelloWorld/example/Top.actionにアクセスし「こんにちはJSP」と表示されたら成功です。