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

原创 2006年06月08日 17:27:00
现象:

应用程序发布在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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

页面中的资源的路径问题

  • 2012年11月21日 01:28
  • 597KB
  • 下载

servlet资源路径加载详解(3)

1.对于servlet的读取资源文件,要考虑工程文件路径和tomcat服务器的部署后的文件,所以一定要弄清楚加载文件路径位置,同时要考虑采用哪种方式: 一般有三种方式: (1).采用传统方式即jd...

Servlet案例之统计访问量与获取类路径下资源

一个项目中所有的资源被访问都要对访问量进行累加 创建一个int类型的变量,用来保存访问量,然后把它保存到ServletContext的域中,这样可以保证所有Servlet都可以访问到这个访问量是整个...
  • tec_sun
  • tec_sun
  • 2017年07月24日 17:25
  • 114

Servlet中获取类路径下资源

Servlet中获取类路径下资源 类路径对一个javaweb应用而言,就是WEB-INF/classes下和WEB-INF/lib目录下的所有jar文件。 将一个javaweb项目发布到Tomca...

给webapp路径里的静态资源加时间戳[JS和CSS],Java自定义标签和Servlet的配置

前几日做了一个很小的功能,一般工程启动后,为了能防止浏览器不缓存那些静态资源,比如js和css文件,一般的思路是在引用那些文件的路径后面增加一个时间戳,例如: 本来是下面这样的, 但,这样的话如...

Struts2 的资源文件路径的空格bug

在你使用应用服务器加载应用程序时,如果应用程序使用了struts2框架,有可能会抛出如下的异常: org.apache.catalina.core.ApplicationContext log信息:...

Struts2和servlet的中文乱码问题

  • 2011年12月03日 20:37
  • 17KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts 1.1与Servlet 2.4的资源路径问题
举报原因:
原因补充:

(最多只允许输入30个字)