Google App Engine for Java
這裡看GAE支援的java架構/技術/語言 列表
https://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine
然後是讓Struts2運行在gae上的方法
這裡有2個相關資料
https://groups.google.com/group/google-appengine-java/browse_thread/thread/19018b0317f27817/ec19c458bb15413b?lnk=gst&q=struts2#ec19c458bb15413b
http://www.nabble.com/Google-App-Engine-support--td22972179.html
只看下文也可以
使用Struts2時候報異常
WARNING: Caught OgnlException while setting property 'location' on type
'org.apache.struts2.dispatcher.ServletDispatcherResult'.
java.lang.IllegalAccessException: Method [public void
org.apache.struts2.dispatcher.StrutsResultSupport.setLocation(java.lang.String)]
cannot be accessed.
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:508)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:812)
SEVERE: ParametersInterceptor - [setParameters]: Unexpected Exception
caught setting 'name' on 'class com.ociweb.gaestruts2.HelloAction: Error
setting expression 'name' with value '[Ljava.lang.String;@24de7d'
解決方案:
1. 建class如下
package com.jun.util.listener;<br />import javax.servlet.ServletContextEvent;<br />import javax.servlet.ServletContextListener;<br />import javax.servlet.http.HttpSessionAttributeListener;<br />import javax.servlet.http.HttpSessionBindingEvent;<br />import javax.servlet.http.HttpSessionEvent;<br />import javax.servlet.http.HttpSessionListener;<br />import ognl.OgnlRuntime;<br />/**<br /> * 為了讓Struts2能在AppEngine上運行,因此要在web.xml中添加這個監聽 **<br /> */<br />public class InitListener implements ServletContextListener,<br /> HttpSessionListener, HttpSessionAttributeListener {<br /> public InitListener() {<br /> }<br /> public void contextInitialized(ServletContextEvent sce) {<br /> OgnlRuntime.setSecurityManager(null);<br /> }<br /> public void contextDestroyed(ServletContextEvent arg0) {<br /> // TODO Auto-generated method stub<br /> }<br /> public void sessionCreated(HttpSessionEvent arg0) {<br /> // TODO Auto-generated method stub<br /> }<br /> public void sessionDestroyed(HttpSessionEvent arg0) {<br /> // TODO Auto-generated method stub<br /> }<br /> public void attributeAdded(HttpSessionBindingEvent arg0) {<br /> // TODO Auto-generated method stub<br /> }<br /> public void attributeRemoved(HttpSessionBindingEvent arg0) {<br /> // TODO Auto-generated method stub<br /> }<br /> public void attributeReplaced(HttpSessionBindingEvent arg0) {<br /> // TODO Auto-generated method stub<br /> }<br />}
2.web.xm配置監聽器
<listener><br /> <listener-class>com.jun.util.listener.InitListener</listener-class><br /></listener>
此時再運行你的struts2項目就行了
原文連結: http://acheron.javaeye.com/blog/396567