设为首页 收藏本站
查看: 1074|回复: 0

[经验分享] BAE 环境下配置 struts2 + spring + hibernate(SSH)(二)struts2

[复制链接]

尚未签到

发表于 2017-2-28 08:16:04 | 显示全部楼层 |阅读模式
在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就可以了
DSC0000.gif

  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>
DSC0001.gif

  按照这样的配置之后在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 ,结果复制到一个新的版本就好了~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348147-1-1.html 上篇帖子: SSL 错误 下篇帖子: 使用Gradle自动发布Java Web到SAE
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表