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を起動しエラーが消えたことを確認してください。