Google App Engine/Struts2の連携

Top > Google App Engine > Struts2の連携

アクセス総数:6209



GAEとStruts2の連携設定

プラグインを追加

GAEでStruts2を動かすには下記のプラグインを追加します。
GAEとStrutsを連携させる時は、Strutsのプラグインだけでは動かないので注意しよう。

  • Struts関連(Struts version2.1.6)
    • commons-fileupload-1.2.1.jar
    • commons-logging-1.0.4.jar
    • freemarker-2.3.13.jar
    • ognl-2.6.11.jar
    • struts2-core-2.1.6.jar
    • xwork-2.1.2.jar
  • GAE関連(GoogleAppEngine? version1.3.0)
    • serializer.jar
    • xalan.jar

※上記のGAE関連のプラグインを入れないと、GAEアプリが立ち上がらないみたいです。

web.xml

Struts Version2.1以降の場合、web.xmlに下記を記述します。

<filter><!-CharacterEncodingFilterよりも前に記述する -- >
 <filter-name>Struts2</filter-name>
 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 <init-param>
  <param-name>actionPackages</param-name>
  <param-value>/*</param-value>
 </init-param>
</filter>

<filter-mapping>
 <filter-name>Struts2</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

<listener><!-GAE関連で必要なListenerを設定 -- >
 <listener-class>jp.co.sorich.common.InitListener</listener-class>
</listener>

appengine-web.xml

appengine-web.xmlを記述します。

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
 <application>test</application>
 <version>1</version>
 <!-- Configure java.util.logging -->
  <system-properties>
   <property name="java.util.logging.config.file" value="WEB-INF/logging.properties" />
   <property name="file.encoding" value="Windows-31J" />
   <property name="DEFAULT_ENCODING"  value="Windows-31J" />
  </system-properties>
 <!-セッションを使えるようにする -- > 
 <sessions-enabled>true</sessions-enabled>
 <!-SSLを使用できるようにする -->
 <ssl-enabled>true</ssl-enabled>
</appengine-web-app>

※GAE環境を作った時点でappengine-web.xml作成されるので特に編集しなくても動きます。

クラスの追加

Web.xmlに追加したクラスを追加します。

public class InitListener implements ServletContextListener,
      HttpSessionListener, HttpSessionAttributeListener {
      
  public void contextInitialized(ServletContextEvent sce) {
    OgnlRuntime.setSecurityManager(null);
  }
  
  public void contextDestroyed(ServletContextEvent servletcontextevent) {
  // TODO 自動生成されたメソッド・スタブ
  }
  ・・・以下略
}

※contextInitialized(ServletContextEvent sce)をoverrideして
OgnlRuntime.setSecurityManager(null);にセットしないとGAEを立ち上げた時にコンパイルエラーが発生する

GAEとStruts2の連携注意事項

  • GAE環境にStruts2を乗っけただけではGAEを動かす事が出来ない。
  • GAE用にプラグインを入れることが必要。
  • GAEでStruts2を動かすにはセキュリティーマネージャの設定を無効にしなくてはならない。

google app engineでの開発のご相談は、こちらまでお問い合わせください。

最終更新日: 2010-02-18 (木) 14:48:02 (2653d)

このページをブックマーク:

このページのURL(コピペして利用下さい):

TOP