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

最近在使用BAE的過程當中,有個問題始終解決不了,在配置struts2框架環境的時候,
若是攔截配置的是<url-pattern>/*</url-pattern>,
那這時候打開首頁會報 504 錯誤,訪問不了咱們在web.xml中配置的welcome-file-list頁面,可是其餘的struts配置能夠訪問,例如:index.do,index.action 均可以訪問成功。
java

後來我查看BAE的幫助文檔,發現他JAVA的環境使用的是jetty 服務器,而不是咱們日常的 tomcat。 web

因而我下載了jetty而且和BAE同樣的版本在本地部署調試,發現也是會出一樣的問題,當咱們訪問項目首頁時,會報出「Could not find action or result」 的錯誤信息
apache

[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配置中加入了
tomcat

<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的配置中加入如下配置
session

<package name="home" namespace="/" extends="struts-default">
   <default-action-ref name="index" />
   <action name="index" >
       <result name="success">/index.jsp</result>
   </action>
</package>
而後重啓服務便可解決
相關文章
相關標籤/搜索