(BAE)jetty8+struts2导致 welcome-file-list 失效

最近在使用BAE的过程中,有个问题始终解决不了,在配置struts2框架环境的时候, 如果拦截配置的是<url-pattern>/*</url-pattern>, 那这时候打开首页会报 504 错误,访问不了我们在web.xml中配置的welcome-file-list页面,但是其他的struts配置可以访问,例如:index.do,index.action 都可以访问成功。

后来我查看BAE的帮助文档,发现他JAVA的环境使用的是jetty 服务器,而不是我们平常的 tomcat。

于是我下载了jetty并且和BAE一样的版本在本地部署调试,发现也是会出同样的问题,当我们访问项目首页时,会报出“Could not find action or result” 的错误信息

[2013-09-13 03:40:53,968] Artifact test3:war exploded: Artifact is deployed successfully
2013-9-13 15:40:54 com.opensymphony.xwork2.util.logging.jdk.JdkLogger warn
警告: Could not find action or result
There is no Action mapped for namespace [/] and action name [] associated with context path [/test3_war_exploded]. - [unknown location]
	at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
	at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
	at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
	at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:553)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:662)

这在我们使用tomcat的时候从没有出现过,我查了一下以后发现这个 错误是 由于 我没有在struts 中配置  default-action-ref 导致的。。。。。

然后我在struts配置中加入了

<package name="home" namespace="/" extends="struts-default">
   <default-action-ref name="index" />
   <action name="index" >
       <result name="success">/index.jsp</result>
   </action>
</package>

结果? 成功了有木有!!!上传到BAE也成功了有木有!!!困扰了我一个星期的问题解决了有木有。。。。。 为什么jetty+struts2会导致出现配置的welcome-file-list失效这种事情呢?难道如查到的那样是jetty的问题?

PS:解决方案 在struts2的配置中加入以下配置

<package name="home" namespace="/" extends="struts-default">
   <default-action-ref name="index" />
   <action name="index" >
       <result name="success">/index.jsp</result>
   </action>
</package>

然后重启服务即可解决

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木制robot技术杂谈

Ubuntu 使用 Docker 安装 Gitlab

最近帮公司重新搭建了 Gitlab,中间遇到了一些坑,折腾了不少时间,在此记录供大家参考。

2484
来自专栏圣杰的专栏

.NET Core+MySql+Nginx 容器化部署

1. 引言 上两节我们通过简单的demo学习了docker的基本操作。这一节我们来一个进阶学习,完成ASP.NET Core + MySql + Nginx的容...

4228
来自专栏杨建荣的学习笔记

使用shell定制awr脚本(r3笔记第32天)

大家在做性能问题诊断的时候,awr是不可或缺的工具,使用?/rdbms/admin/awrrpt.sql可能大家使用的多了,可能有时候感觉输入参数还是有些太繁琐...

2754
来自专栏landv

烽火R2600交换机配置脚本

1132
来自专栏乐沙弥的世界

CRS-1006 , CRS-0215 故障一例

    安装好sles 10 sp3 + Oracle 10g RAC之后,在配置监听器时,总是提示主机bo2dbp上的监听服务已经在运行,忽略错误之后手动在b...

583
来自专栏云计算

将Java EE应用程序部署到Docker Swarm集群

Docker Swarm 为Docker提供本地集群。 Docker Swarm 0.2.0版本的集群 提供了Docker Swarm 的基本介绍,以及如何创...

3117
来自专栏python3

docker基于Alpine Linux构建镜像

Alpine Linux,一个只有5M的Docker镜像。是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了mus...

2051
来自专栏姚俊刚的专栏

Dockerfile 分享之 SSH Server

Docker 官方网站上给出的示例里面有个 用 Dockerfile 构建 SSH Server 的例子, 我在腾讯云的主机上实验了一下, 中间添加了一些优化,...

1.6K0
来自专栏云计算认知升级

在腾讯云上使用 Harbor 部署私有Registry

对于一些比较私密的镜像,涉及到安全问题,就不能推送到 Docker Hub,这就需要配置一个私有的 Registry,来存放我们的 Docker Images ...

5840
来自专栏康怀帅的专栏

Docker 镜像多阶段构建

本文内容来自我参与维护的 《Docker 从入门到实践》 项目。 之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用...

3744

扫码关注云+社区