在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的更多相关文章

  1. struts2+spring+hibernate(SSH)框架的搭建和总结

    SSH框架:struts2+spring+hibernate,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. struts2+spring+hibernat ...

  2. Struts2+Spring+Hibernate(SSH)框架的搭建

    首先需要下载struts2 ,spring4,hibernate5  的资源包; struts2资源包下载路径:http://www.apache.org/spring资源包下载路径:http://p ...

  3. BAE 环境下配置 struts2 + spring + hibernate(SSH)(三)spring&hibernate

    1.在lib中加入必要的包,导入后结果如下: lib打包下载:SSH-lib.jar  (struts2.3.1.2  spring3.0.5 hibernate3.6.10.Final) 只包含必要 ...

  4. BAE 环境下配置 struts2 + spring + hibernate(SSH)(一)准备

    1.首先选择版本控制 SVN 或者 Git ,但是由于Git在windows下需要环境,所以优先选择SVN. 2.安装一个SVN客户端 windows下使用TortoiseSVN:立即下载 注意:BA ...

  5. SSH面试题(struts2+Spring+hibernate)

    struts2 + Spring +hibernate Hibernate工作原理及为什么要用?   原理:   1.读取并解析配置文件   2.读取并解析映射信息,创建SessionFactory ...

  6. SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>

    此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...

  7. SSH框架简化(struts2+spring+hibernate)

    目的: 通过对ssh框架有了基础性的学习,本文主要是使用注解的方式来简化ssh框架的代码编写. 注意事项: 1.运行环境:Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91 ...

  8. Maven搭建struts2+spring+hibernate环境

    Maven搭建struts2+spring+hibernate环境(一) 本文简单的使用STS的自带的maven插件工具搭建ssh(struts2+spring+hibernate)开发环境,图文并茂 ...

  9. Spring、Struts2+Spring+Hibernate整合步骤

    所使用的Jar包: Hibernate: Spring(使用MyEclipse自动导入框架功能) Struts2: 注解包和MySql驱动包: 1.配置Hibernate和Spring: <be ...

随机推荐

  1. linux下配置固定ip

    今天在VM上装linux6.3,装的时候没有配置ip,虚拟机连接方式选的NAT方式,可以直接上网.我装这几次虚拟机系统只有这次虚拟机上去网了,挺爽.但是问题又出来了,就是我本机Windows远程不上虚 ...

  2. 登陆用户怎样获取验证码和保存用户到cookie中

    User表: User.java package user.domain; import java.io.Serializable; import java.util.Date; public cla ...

  3. (三)phpcms之文件目录

    刚刚接触phpcms,先从它的目录结构说起. 如下图所示,是phpcms的主目录结构: 其中api是接口目录,这个接口不是很明白.大概其是把别的内容加入进来,比如论坛啊什么的. caches是缓存文件 ...

  4. 关于开发环境 git 重新部署

    apps  开发机器 多次因为升级出现无法登陆 下面就重新部署 流程做笔记 1   备份 根目录下的 那一堆shell 和 Cache/data 下的系统配置 2  shell : su www   ...

  5. android 19 activity纵横屏切换的数据保存与恢复

    Bundle类:竖屏的activity换到横屏的activity的时候,会把竖屏的activity杀掉横屏的activity创建,竖屏的activity会有一些计算结果,可以用数据存起来,存到内存里面 ...

  6. IOS—通过ChildViewController实现view的切换

    IOS-通过ChildViewController实现view的切换 在以前,一个UIViewController的View可能有很多小的子view.这些子view很多时候被盖在最后,我们在最外层Vi ...

  7. (原创)googlemap开发(一)

    听说我们的客户有了外国淫,所以领导问我目前的项目里高德地图和讯飞语音支持英文和英文发音不,按照我以往的经验判断,讯飞支持英语发音和识别英语是没有问题的,但是高德这玩意貌似只有我大天朝的地图吧.于是,找 ...

  8. xcode升级或者重新安装后不能编译的解决方法

    昨天由于xcode有一些问题,因此进行了重新安装,结果安装好后进行编译,没有进行任何改动的代码出现了两个fatal error 查看错误信息为什么的header has allready build, ...

  9. 一次优化web项目的经历记录(一)

    一次优化web项目的经历记录 这段时间以来的总结与反思 前言:最近很长一段时间没有更新博客了,忙于一堆子项目的开发,严重拖慢了学习与思考的进程.开水倒满了需要提早放下杯子,晚了就会烫手,这段时间以来, ...

  10. 2016年11月1日——jQuery源码学习笔记

    1.instanceof运算符希望左操作数是一个对象,右操作数标识对象的类.如果左侧的对象是右侧类的实例,则表达式返回true,否则返回false 2.RegExp.exec() 如果 exec() ...