2019独角兽企业重金招聘Python工程师标准>>>

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.Str­ing)] 
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;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import ognl.OgnlRuntime;
/*** 为了让Struts2能在AppEngine上运行,因此要在web.xml中添加这个监听 ***/
public class InitListener implements ServletContextListener,HttpSessionListener, HttpSessionAttributeListener {public InitListener() {}public void contextInitialized(ServletContextEvent sce) {OgnlRuntime.setSecurityManager(null);}public void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stub}public void sessionCreated(HttpSessionEvent arg0) {// TODO Auto-generated method stub}public void sessionDestroyed(HttpSessionEvent arg0) {// TODO Auto-generated method stub}public void attributeAdded(HttpSessionBindingEvent arg0) {// TODO Auto-generated method stub}public void attributeRemoved(HttpSessionBindingEvent arg0) {// TODO Auto-generated method stub}public void attributeReplaced(HttpSessionBindingEvent arg0) {// TODO Auto-generated method stub}
}

2.web.xm配置监听器

<listener><listener-class>com.jun.util.listener.InitListener</listener-class>
</listener>

此时再运行你的struts2项目就行了

转载于:https://my.oschina.net/oncereply/blog/13409

GAE上使用Struts2相关推荐

  1. gae代码_是否要在GAE上运行Apache FOP? 这是您的答案!

    gae代码 在"大约一年的分析,代码,测试,反复试验和大量咖啡之后",已经启动了Google FOP的Apache FOP端口 . 该项目的特点是在GAE上运行的整个FOP堆栈. ...

  2. kindeditor图片上传 struts2实现

    一.kindeditor以及struts2部署搭建不再赘述,如须要请參考kindeditor用法 Struts2框架搭建 二.kindeditor图片上传所依赖jar包在kindeditor\jsp\ ...

  3. Struts2框架漏洞总结与复现(上) 含Struts2检测工具

    Struts2框架漏洞总结与复现 1.Struts2复现准备 2.Struts2框架漏洞复现 2.1.S2-001漏洞复现 2.1.1.漏洞原理 2.1.2.影响版本 2.1.3.手工复现 2.1.3 ...

  4. GAE上部署micolog

    1,安装python 2,安装GoogleEngine 3,上传micolog 4,访问 python2.6.6 micolog0.74 GoogleEngine fifefox扩展autoproxy ...

  5. struts2的文件上传和文件下载

    实现使用Struts2文件上传和文件下载: 注意点: (1)对应表单的file1和私有成员变量的名称必须一致 <input type="file" name="fi ...

  6. struts2 文件上传与下载 (初始文件上传的底层技术)——struts2第七讲

    2019独角兽企业重金招聘Python工程师标准>>> 文件上传 struts2 注:本文系作者在看了浪曦的风中叶老师的struts2视频的个人总结,希望能帮助广大struts2的初 ...

  7. Struts2 文件上传,下载,删除

    本文介绍了: 1.基于表单的文件上传 2.Struts 2 的文件下载 3.Struts2.文件上传 4.使用FileInputStream FileOutputStream文件流来上传 5.使用Fi ...

  8. nfine框架 上传文件_MVC之Struts2框架--你并不了解的高级应用

    <"爱读书"--给你讲技术>,我来看书,你来进步,让我们开始吧! 本书简介 书名为<轻量级JavaEE企业应用实战>,是本人在学习JavaEE框架的时候阅读 ...

  9. Struts2学习笔记(八) 拦截器(Interceptor)(上)

    什么是拦截器(Interceptor) 拦截器是struts2框架最重要的特性之一.它可以让你在Action 方法执行前后(Result执行之后)进行一些功能处理.在前面学习Action和学习Resu ...

最新文章

  1. 顶会论文9篇,又斩获百度奖学金!哈工大NLP“新生代”正崭露头角
  2. 薛定谔的猫跳进了生物学界,化学家表示:没有我可能办不到
  3. 解决linux下oracle进入sqlplus环境中后退键显示^H、上下键无效与ctrl+l无法清屏等问题【weber出品必属精品】...
  4. 如何打造BCH使用的刚性需求?
  5. JAVA IO修改文本内容
  6. oracle查看数据库名和实例名
  7. 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(11月9日~11月13日)...
  8. cat /proc/meminfo 各字段详解
  9. Myeclipse创建Maven项目提示:Creating maven-archetype-webapp has encountered a problem. 解决方法
  10. 【转】更改远程桌面默认端口3389及删除远程桌面连接历史记录
  11. 【ES6】什么是Promise?解析Promise的基本用法
  12. ubuntu14.04中卸载cuda、cudnn
  13. 关于主机的思维导图_思维导图可以整理哪些东西?
  14. QQ小程序加QQ群和加好友
  15. vmware克隆centos修改mac地址
  16. 将实时频谱分析仪与HIF输出配合使用
  17. 国家计算机二级和省计算机二级的区别?
  18. 大家都在做直播,陌陌做的这个有什么不同?
  19. C++Singleton模式
  20. windows系统下更新nodejs

热门文章

  1. Java项目中,如何限制每个用户访问接口的次数
  2. python3字符编码错误
  3. 改变mysql数据库用户的权限
  4. sql对应C#的类型
  5. 学习第七天——培训开始
  6. Android Fragment详解(二):Fragment创建及其生命周期
  7. jquerynbsp;easyuinbsp;dateboxnbsp;的使用nbsp;.
  8. 用计算机源码计算加法,MFC实现简单计算器(支持加减乘除和括号运算)
  9. signature=c4f11bb5142d9f6ce0876b3cc0d888af,PROVISIONAL SIGNATURE SCHEMES
  10. 在计算机技术中描述信息最小单位是,计算机二级考试单选题