夜澜偶作庄周梦 酒后聊为楚客狂

实现已知的理论,这仅仅称为技术,探索未知的领域,才是科学的真谛

Struts 1.1与Servlet 2.4的资源路径问题
现象:

应用程序发布在WebSphere Application Server 5.x上可以正常运行,但当这个应用程序发布到WebSphere Application Server 6.0上时,出现下面的错误:
ActionServlet E TRAS0014I:
下列异常已记录 java.net.MalformedURLException: SRVE0238E: 资源路径应该以斜杠开头
at com.ibm.ws.webcontainer.webapp.WebApp.
getResource(WebApp.java:1915)
at com.ibm.ws.webcontainer.facade.
ServletContextFacade.getResource
(ServletContextFacade.java:100)
at org.apache.struts.action.ActionServlet.
parseModuleConfigFile(ActionServlet.java:1002)
at org.apache.struts.action.ActionServlet.
initModuleConfig(ActionServlet.java:955)
at org.apache.struts.action.ActionServlet.
init(ActionServlet.java:470)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at com.ibm.ws.webcontainer.servlet.
ServletWrapper.init(ServletWrapper.java:262)
at com.ibm.ws.webcontainer.servlet.
ServletWrapper.initialize(ServletWrapper.java:1319)
at com.ibm.wsspi.webcontainer.extension.
WebExtensionProcessor.
createServletWrapper(WebExtensionProcessor.java:84)
at com.ibm.ws.webcontainer.webapp.WebApp.
getServletWrapper(WebApp.java:745)
at com.ibm.ws.webcontainer.webapp.WebApp.
initializeTargetMappings(WebApp.java:493)
... ...

WebExtensionP W Servlet action is currently
unavailable: Parsing error processing resource path

WebExtensionP E SRVE0026E: Servlet 错误]-
javax.servlet.UnavailableException:
Parsing error processing resource path
at org.apache.struts.action.ActionServlet.
handleConfigException(ActionServlet.java:1035)
at org.apache.struts.action.ActionServlet.
parseModuleConfigFile(ActionServlet.java:1010)
at org.apache.struts.action.ActionServlet.
initModuleConfig(ActionServlet.java:955)

at org.apache.struts.action.ActionServlet.
init(ActionServlet.java:470)

原因:这是由于在 Struts 1.1 中,获得资源路径时,前面不带斜线( / ),但在Servlet 2.4规范中,要求在获得一个资源路径时,路径必须是相对与当前上下文根并以斜线( / )开头。
WebSphere Application Server 5.x中允许资源的URL不是以斜线( / )开头,但在WebSphere Application Server 6.0中,使用的是Servlet 2.4的规范,为了保持兼容性,需要在web容器中添加一个prependSlashToResource的属性来避免错误。

解决办法:

具体步骤:
登陆 WebSphere 管理控制台,进入 服务器->对应的服务器名称 -> WEB容器 -> 其他属性 ->添加
添加下面的属性:
名称:prependSlashToResource
值:true

然后保存配置,重新启动WebSphere Application Server

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jaminwm/article/details/780756
个人分类: WebSphere
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Struts 1.1与Servlet 2.4的资源路径问题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭