JBoss AS7でSAStrutsを動くようにしてみた
前回の続き。
Seasar2のソースを見てみたら、JBoss AS7のVFS API依存になってしまうが対応できそうなので、JBoss AS7向けの拡張モジュール(s2-jbossas7)を作ってみた。SAStruts+S2JDBC程度の簡単なサンプルでしか動作確認していませんが、公開しておきます。WARファイル形式、展開WAR形式の両方で確認しています。なお、Seasar2のJARは/WEB-INF/lib以下にあることが前提です。$JBOSS_HOME/modules以下に置いた場合は試していないです。
ついでにJBoss AS7はServlet 3.0対応しているので、@WebServletを使って設定も少し減らしてみた(他の設定があるのでほとんど無意味だけどね)。
ソースはGitHubにあります。また、バイナリファイルもGitHub上のMavenリポジトリに置いておいたので、Mavenから簡単に使えます。JARだけ欲しい場合はこちら。
使い方
pom.xmlの変更
... <repositories> <repository> <id>maven.seasar.org</id> <name>The Seasar Foundation Maven2 Repository</name> <url>http://maven.seasar.org/maven2</url> </repository> <!-- 以下を追加 --> <repository> <id>maven.wadahiro.github.com</id> <name>The wadahiro's Maven2 Repository</name> <url>http://wadahiro.github.com/maven/release</url> </repository> </repositories> ...
- s2-jbossas7への依存関係を追加する。
... <!-- SAStruts --> <dependency> <groupId>org.seasar.sastruts</groupId> <artifactId>sa-struts</artifactId> <version>1.0.4-sp9</version> </dependency> <!-- 以下を追加 --> <dependency> <groupId>org.seasar.jboss</groupId> <artifactId>s2-jbossas7</artifactId> <version>0.1</version> </dependency> ...
web.xmlの変更
- web-appタグをServlet 3.0の物に変更する。
<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_3_0.xsd" version="3.0">
- S2ContainerServletの定義を削除(またはコメントアウト)する。
... <!-- <servlet> <servlet-name>s2container</servlet-name> <servlet-class>org.seasar.framework.container.servlet.S2ContainerServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> --> ... <!-- <servlet-mapping> <servlet-name>s2container</servlet-name> <url-pattern>/s2container</url-pattern> </servlet-mapping> --> ...
もし、web.xmlに明示的に書くのであれば、S2ContainerServletの代わりにorg.seasar.framework.container.servlet.S2ContainerServletOnJBossAS7を定義してください。その場合は、web-appタグは旧来の物でも構いません。
動かしてみる
前回と違ってデプロイ成功。サンプルアプリも動作しています。
10:28:25,839 INFO [org.jboss.as.server.deployment] (MSC service thread 1-5) JBAS015876: Starting deployment of "sastruts-sample.war" 10:28:26,859 WARN [org.jboss.as.server.deployment] (MSC service thread 1-6) Class Path entry commons-beanutils.jar in "/content/sastruts-sample.war/WEB-INF/lib/struts-1.2.9.jar" does not point to a valid jar for a Class-Path reference. 10:28:26,861 WARN [org.jboss.as.server.deployment] (MSC service thread 1-6) Class Path entry commons-digester.jar in "/content/sastruts-sample.war/WEB-INF/lib/struts-1.2.9.jar" does not point to a valid jar for a Class-Path reference. 10:28:26,862 WARN [org.jboss.as.server.deployment] (MSC service thread 1-6) Class Path entry commons-fileupload.jar in "/content/sastruts-sample.war/WEB-INF/lib/struts-1.2.9.jar" does not point to a valid jar for a Class-Path reference. 10:28:26,863 WARN [org.jboss.as.server.deployment] (MSC service thread 1-6) Class Path entry commons-logging.jar in "/content/sastruts-sample.war/WEB-INF/lib/struts-1.2.9.jar" does not point to a valid jar for a Class-Path reference. 10:28:26,864 WARN [org.jboss.as.server.deployment] (MSC service thread 1-6) Class Path entry commons-validator.jar in "/content/sastruts-sample.war/WEB-INF/lib/struts-1.2.9.jar" does not point to a valid jar for a Class-Path reference. 10:28:26,865 WARN [org.jboss.as.server.deployment] (MSC service thread 1-6) Class Path entry jakarta-oro.jar in "/content/sastruts-sample.war/WEB-INF/lib/struts-1.2.9.jar" does not point to a valid jar for a Class-Path reference. 10:28:27,325 INFO [org.seasar.struts.validator.S2ValidatorPlugIn] (MSC service thread 1-2) Loading validation rules file from '/WEB-INF/validator-rules.xml' 10:28:27,374 INFO [org.seasar.framework.container.factory.SingletonS2ContainerFactory] (MSC service thread 1-2) s2-frameworkのバージョンは2.4.44です。 10:28:27,376 INFO [org.seasar.framework.container.factory.SingletonS2ContainerFactory] (MSC service thread 1-2) s2-extensionのバージョンは2.4.44です。 10:28:27,381 INFO [org.seasar.framework.container.factory.SingletonS2ContainerFactory] (MSC service thread 1-2) s2-tigerのバージョンは2.4.44です。 10:28:27,688 INFO [org.seasar.framework.container.factory.SingletonS2ContainerFactory] (MSC service thread 1-2) Running on [ENV]ct, [DEPLOY MODE]Hot Deploy 10:28:27,690 INFO [org.jboss.web] (MSC service thread 1-2) JBAS018210: Registering web context: /sastruts-sample 10:28:27,728 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018565: Replaced deployment "sastruts-sample.war" with deployment "sastruts-sample.war"