Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >(BAE)jetty8+struts2导致 welcome-file-list 失效

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

作者头像
用户1688446
发布于 2018-05-08 10:54:33
发布于 2018-05-08 10:54:33
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

最近在使用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” 的错误信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[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配置中加入了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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的配置中加入以下配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<package name="home" namespace="/" extends="struts-default">
   <default-action-ref name="index" />
   <action name="index" >
       <result name="success">/index.jsp</result>
   </action>
</package>

然后重启服务即可解决

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一些流行Java MVC框架的调用栈
今天在ActFramework群里面谈及了Spring的调用栈, 大家都觉得调用栈太长了影响性能,也不利于调试. 我这边刚好有一个Web框架性能测试项目的代码, 其中有一些常见的Java MVC框架,包括Springboot, JFinal, NinjaFramework等, 我在代码中添加了 new RuntimeException().printStackTrace(); 用来打印调用到应用逻辑(控制器)的调用栈.下面是我的测试结果: ActFramework java.lang.RuntimeExce
老码农
2018/06/27
1.1K0
Arthasa应用 原
Arthasa是个好东西,用熟了确实一大助力,本文主要描述如何用Arthasa解决问题(官网https://alibaba.github.io/arthas)。
尚浩宇
2018/10/10
8730
使用Spring @Cacheable注解
出现这种异常,需要向自定义ObjectMapper,设置一些参数,而不是直接使用Jackson2JsonRedisSerializer类中黙认的ObjectMapper,看源代码可以知道,Jackson2JsonRedisSerializer中的ObjectMapper是直接使用new ObjectMapper()创建的,这样ObjectMapper会将Redis中的字符串反序列化为java.util.LinkedHashMap类型,导致后续Spring对其进行转换成报错。其实我们只要它返回Object类型就可以了。
Qwe7
2022/03/18
1.2K0
Gradle 下载 Archiva 仓库的时候提示错误不能下载
如果返回的代码是 404 说明的是资源没有找到,返回 500 的意思是服务器上有错。
HoneyMoose
2020/04/13
5180
ResourceManager HA无法连接Spark TrackUi现象解决方案
在对ResourceManager做了基于Zookeeper的HA后, 在YARN集群上执行Spark application后, 打开Spark Application Tracking UI显示以下错误:
codingforfun
2018/08/24
1.2K0
自家表兄弟Tomcat和Jetty
Jetty是Eclipse基金会的一个开源项目,是“HTTP服务器 + Servlet容器”,并且Jetty和Tomcat在架构设计上有不少相似的地方,实在是像一对表兄弟。
春哥大魔王
2020/03/13
1.5K0
hadoop集群配置之hive1.2.0安装部署(远程mysql)
为了一次性成功,在hive主目录下找到conf文件夹下的hive_env.sh,将其中得HADOOP_HOME和HIVE_CONF_DIR放开并怕配置
尚浩宇
2018/08/17
1K0
hadoop集群配置之hive1.2.0安装部署(远程mysql)
Struts 2配置详解
上一章我们初步学习了Struts 2框架,包括Struts 2体系结构和运行流程,并通过登录案例介绍了使用Struts 2进行开发的基本步骤。
张哥编程
2024/12/17
2430
Struts 2配置详解
flink和hudi集成报io.javalin.core.CachedRequestWrapper.getContentLengthLong()J异常
从异常信息知是jar包版本导致的,因为Javalin requires javax.servlet version 3.1.0
yiduwangkai
2022/05/09
5190
初探 Struts2 框架安全
最近分析 confluence 的漏洞,发现是基于 Struts 框架的,其中有很多相关知识点并不了解,因此专门来学习一下 Struts 2。
evilpan
2023/11/02
6090
初探 Struts2 框架安全
JavaWeb——Struts2
Struts2是一个基于MVC设计模式web应用框架,在webwork框架技术基础上,Strurts2核心是拦截器,Struts2框架的核心功能都依靠拦截器实现的。Struts2框架对控制器进行了统一的和规范。
羊羽shine
2019/05/30
5400
Jetty入门
总述 同tomcat一样,jetty也是一个servlet引擎,jetty的神奇之处在于,jetty不仅可以作为一个web应用的容器,它甚至还可以作为一个程序中的插件来通过main函数加载web应用程序本身。 Jetty 是一个 Web server/servlet container, 支持 SPDY,WebSocket, OSGi, JMX,JNDI, JAAS 。Jetty非常高效而且灵活,Google App Engine 选择了Jetty,而放弃了Tomcat,或是其他的服务器。 Jetty ha
SecondWorld
2018/03/14
1.8K0
Jetty入门
struts2框架搭建学习遇到的问题
严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationTargetException处理方法:
yuanyuan
2019/09/10
5410
Struts2框架的基本使用(二)
本文介绍了Struts2结果类型解析的详细用法和配置解析,通过实例介绍了如何配置和解决常见错误类型,包括类型转换错误、解析错误、资源文件错误和类型转换错误等。同时,本文还介绍了在Struts2中配置文件注释和结果类型注释的用法,以及如何自定义结果类型,并给出了详细的注释示例。
Single
2018/01/04
7990
Struts2框架的基本使用(二)
jetty启动web项目源码分析
jetty是HTTP服务,HTTP客户端,和javax.servlet的容器。它本身被设计成嵌入式模式,应该将jetty集成到自己的应用,jetty本身可以实例化,能像任何POJO一样使用,用jetty就相当于把Http服务塞进了自己的应用
爬蜥
2024/02/04
3860
jetty启动web项目源码分析
jetty启动web项目源码分析
jetty是HTTP服务,HTTP客户端,和javax.servlet的容器。它本身被设计成嵌入式模式,应该将jetty集成到自己的应用,jetty本身可以实例化,能像任何POJO一样使用,用jetty就相当于把Http服务塞进了自己的应用
爬蜥
2019/07/09
2.9K0
Stack Overflow 上最火的一个问题:什么是 NullPointerException
在逛 Stack Overflow 的时候,发现最火的问题竟然是:什么是 NullPointerException(java.lang.NullPointerException),它是由什么原因导致的,有没有好的方法或者工具可以追踪它发生的原因?
沉默王二
2019/10/21
8200
Azkaban Two Server模式部署 原
Two Server模式就是把Azkaban和MySQL进行了分离,下面就介绍一下这种部署模式。
云飞扬
2019/03/12
2.8K0
Azkaban Two Server模式部署
                                                                            原
Jetty架构设计之Connector、Handler组件
Jetty是Eclipse基金会的一个开源项目,和Tomcat一样,Jetty也是一个“HTTP服务器 + Servlet容器”,并且Jetty和Tomcat在架构设计上有不少相似的地方。但同时Jetty也有自己的特点,主要是更加小巧,更易于定制化。Jetty作为一名后起之秀,应用范围也越来越广,比如Google App Engine就采用了Jetty来作为Web容器。
JavaEdge
2021/10/18
9950
eclipse/intellij Idea集成jetty
jetty相对weblogic、jboss、tomcat而言,启动速度快,十分方便开发调试,以下是eclipse里的使用步骤: 一、eclipse->Marketplace里搜索 jetty 一路Ne
菩提树下的杨过
2018/01/19
2.1K0
eclipse/intellij Idea集成jetty
相关推荐
一些流行Java MVC框架的调用栈
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验