在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. 关于assert的学习

    编写代码时,总会做出一些假设,断言就是用于在代码中捕捉这些假设, 可以将断言看成是异常处理的一种高级形式. c语言assert宏的定义, #include <assert.h> void ...

  2. AIX操作oracle

    oracle:出现下述错误,无法连接用户. ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist ...

  3. 翻译Android USB HOST API

    翻译Android USB HOST API 源代码地址:http://developer.android.com/guide/topics/connectivity/usb/host.html 译者 ...

  4. 另5个你不知道的HTML5接口API

    原文地址: 5 More HTML5 APIs You Didn’t Know Existed 演示地址: 全屏API Demo 原文日期: 2012年11月08日 翻译日期: 2013年08月13日 ...

  5. POJ 2750 Potted Flower

    Potted Flower Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3872   Accepted: 1446 Des ...

  6. [RxJS] Utility operator: do

    We just saw map which is a transformation operator. There are a couple of categories of operators, s ...

  7. 一次完整的HTTP请求所经历的7个步骤(转)

    HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该 ...

  8. 通知模式实现两个textField传值及模态视图——iOS开发

    通知模式实现两个textField传值及模态视图--iOS开发 利用通知模式,实现两个不同界面的textField之间的传值,在界面二输入字符,传值到前一界面的textField. 界面的切换,这里临 ...

  9. java输入输出

    1. import java.io.*;//写进文档,然后又在显示器显示出来.public class fileinputstream{public static void main(String[] ...

  10. [转] Linux strace 简介

    http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html 简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在L ...