BAE 环境下配置 struts2 + spring + hibernate(SSH)(二)struts2
在myeclipse下开发的 应用但是 放到BAE下就出现了问题,虽然显示发布成功,但是访问的时候就会出现503 Service Unavailable 错误。
通过调整 web.xml 发现纯Servlet是可以正常访问的,一旦加入struct2之后就会 503 错误。
一开始以为是struts版本的问题 更换了版本还是一样有问题,即使使用了百度文档里说的 2.3.1.2 版本问题依旧。
一直倒腾怎么久都没有解决的关键就是,他的日志里什么错误都没有!!!!
由于BAE使用的是 jetty 容器 不是 tomcat 所以我想看看能不能通过在本地使用jetty来找出错误。
接下来我就首先以加载struts2作为首要目的,首先导入了网上所说的 5个 struts2 核心包。
1。Commons-logging.jar -------------- 用于通用日志处理
2。Freemarker.jar -------------- 表现层框架,定义了struts2的可视组件主题
3。Ognl.jar -------------- OGNL表达式语言,struts2支持该EL
4。Struts2-core.jar -------------- struts2 2.0.11.2的核心库
5。Xwork.jar -------------- webwork的核心库
在jetty目录下执行下面的命令,启动jetty服务器:
> java -jar start.jar
在启动过程中就出现了错误信息,终于有错误信息了~~
排除几个错误之后,确认要包以下的jar就可以了

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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">
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

按照这样的配置之后在WebRoot 下放一个index.jsp
能够成功访问,说明struts2已经成功载入,服务器也正常了。
接下来试试Action的是否能用,对struts.xml进行简单的配置,就配置一个action。
结果还是出了问题,报404错误 result 'null' not found 。
我的actionclass是直接返回字符串的,所以应该不会是class的问题。
看了下文档发现,百度的文档中有
2、ognl
struts2依赖于ognl,在使用ognl时需要配置一个listener,将ognl的安全管理器关闭。Listener的实现代码如下:
public void contextInitialized(ServletContextEvent sce) {
OgnlRuntime.setSecurityManager(null);
}
并在web.xml中将listener的配置加上。
那接下来就是配置这个listener,由于百度没有提供完整代码的代码所以就去SAE(新浪的应用服务器)的文档里找了一个。
InitListener.java:
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; 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
} }
并且在web.xml文件中添加listener相关配置:
<listener>
<listener-class>InitListener</listener-class>
</listener>
弄好之后再测试,可以正常使用action了~
到这里struts2就算搞定了,不过在前面倒腾的时候发现一个问题原来还好好的不小心弄了一下又变成 503 了,即使恢复到前面好的状况依旧 503 ,结果复制到一个新的版本就好了~
BAE 环境下配置 struts2 + spring + hibernate(SSH)(二)struts2的更多相关文章
- struts2+spring+hibernate(SSH)框架的搭建和总结
SSH框架:struts2+spring+hibernate,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. struts2+spring+hibernat ...
- Struts2+Spring+Hibernate(SSH)框架的搭建
首先需要下载struts2 ,spring4,hibernate5 的资源包; struts2资源包下载路径:http://www.apache.org/spring资源包下载路径:http://p ...
- BAE 环境下配置 struts2 + spring + hibernate(SSH)(三)spring&hibernate
1.在lib中加入必要的包,导入后结果如下: lib打包下载:SSH-lib.jar (struts2.3.1.2 spring3.0.5 hibernate3.6.10.Final) 只包含必要 ...
- BAE 环境下配置 struts2 + spring + hibernate(SSH)(一)准备
1.首先选择版本控制 SVN 或者 Git ,但是由于Git在windows下需要环境,所以优先选择SVN. 2.安装一个SVN客户端 windows下使用TortoiseSVN:立即下载 注意:BA ...
- SSH面试题(struts2+Spring+hibernate)
struts2 + Spring +hibernate Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory ...
- SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>
此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...
- SSH框架简化(struts2+spring+hibernate)
目的: 通过对ssh框架有了基础性的学习,本文主要是使用注解的方式来简化ssh框架的代码编写. 注意事项: 1.运行环境:Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91 ...
- Maven搭建struts2+spring+hibernate环境
Maven搭建struts2+spring+hibernate环境(一) 本文简单的使用STS的自带的maven插件工具搭建ssh(struts2+spring+hibernate)开发环境,图文并茂 ...
- Spring、Struts2+Spring+Hibernate整合步骤
所使用的Jar包: Hibernate: Spring(使用MyEclipse自动导入框架功能) Struts2: 注解包和MySql驱动包: 1.配置Hibernate和Spring: <be ...
随机推荐
- cmd的copy命令合并多个文件
1.1个a.jpg文件:1个b.php文件(一句话木马)
- jQuery选择器总结 转
jQuery选择器总结 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3 ...
- c# 字符串转化成声音 分类: C# 2014-09-24 12:20 316人阅读 评论(0) 收藏
说明: (1)支持Window 7系统,但是xp系统智能朗读英文和数字: (2)添加引用 Interop.SpeechLib.dll; (3)使用时调用StringToVoice(str)即可. us ...
- Windows Live Writer的Markdown插件
我新写了一个Windows Live Writer的Markdown插件,代码放在了github上. 介绍 这个项目是一个Windows Live Writer的Markdown插件.有了这个插件,你 ...
- IAAS云计算产品畅想-公有云主机产品优势
关于云计算的优势介绍真是太多太多了,但是说实话准确性欠妥. 云计算也是有很多细分的: 公有云.私有云.混合云 IAAS.PAAS.SAAS 园区云.行业云(医疗云.教育云等等) 说起优点来,绝对不能一 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(30)-本地化(多语言)
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(30)-本地化(多语言) 我们的系统有时要扩展到其他国家,或者地区,需要更多的语言环境,微软提供了一些解决 ...
- highgui.h备查 分类: C/C++ OpenCV 2014-11-08 18:11 292人阅读 评论(0) 收藏
/*M/////////////////////////////////////////////////////////////////////////////////////// // // IMP ...
- iOS-Storyboad动态刷新
iOS-Storyboad动态刷新 什么叫做Storyboard动态刷新 在项目开发中,如果可以在xib(storyboard)中,动态显示运行效果图,那么实在是太爽了.在Xcode 6之后就为我们提 ...
- phpnow安装教程
点评:搭建 PHP 其实不很难,只是有点繁琐.要是自己搭建一次 PHP + MySQL 环境很是费时.更糟的是,很多新手在配置 PHP 时常常出现这样那样的问题.诸如 mysql 扩展.zend 安装 ...
- .Net4.0如何实现.NET4.5中的Task.Run及Task.Delay方法
前言 .NET4.0下是没有Task.Run及Task.Delay方法的,而.NET4.5已经实现,对于还在使用.NET4.0的同学来说,如何在.NET4.0下实现这两个方法呢? 在.NET4.0下, ...