Struts2 的资源文件路径的空格bug
来源:互联网 发布:阿里云iis 一键安装包 编辑:程序博客网 时间:2024/05/17 03:18
在你使用应用服务器加载应用程序时,如果应用程序使用了struts2框架,有可能会抛出如下的异常:
org.apache.catalina.core.ApplicationContext log信息: Closing Spring root WebApplicationContext2011-12-8 12:50:02org.apache.catalina.core.ApplicationContext log信息: SessionListener: contextDestroyed()2011-12-8 12:50:02org.apache.catalina.core.ApplicationContext log信息: ContextListener: contextDestroyed()2011-12-8 12:50:34org.apache.catalina.core.ApplicationContext log信息: ContextListener: contextInitialized()2011-12-8 12:50:34org.apache.catalina.core.ApplicationContext log信息: SessionListener: contextInitialized()2011-12-8 12:50:34org.apache.catalina.core.ApplicationContext log信息: Initializing Spring root WebApplicationContext2011-12-8 12:50:41org.apache.catalina.core.StandardContext filterStart严重:Exception starting filter struts2java.lang.NullPointerException at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading(FileManager.java:209) at com.opensymphony.xwork2.util.FileManager.fileNeedsReloading(FileManager.java:60) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:325) at org.apache.struts2.config.StrutsXmlConfigurationProvider.needsReload(StrutsXmlConfigurationProvider.java:168) at com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:220) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:61) at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:891) at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:191) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065) at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)2011-12-8 12:50:41 org.apache.catalina.core.ApplicationContext
此异常是由struts2中的FileManager类加载资源时出现的一BUG,当前资源所在的磁盘路径如果存在空,FileManager在进行资源解析时会错,关键性代码如下:
public static boolean fileNeedsReloading(String fileName, Class clazz) { URL fileUrl = ClassLoaderUtil.getResource(fileName, clazz); return fileUrl != null && fileNeedsReloading(fileUrl.toString()); }
当使用类加载工具将资源转换为URL时,如果资源路径中存在空格,此时路径会中的空格会转换成%20之类的东西,此时再作为文件路径将无法读取文件
- Struts2 的资源文件路径的空格bug
- redis - 空格引起的bug
- Struts2中的资源文件的配置
- 关于Struts2资源文件的配置
- struts2中加载资源文件的顺序
- struts2的国际资源化文件
- java中找到资源文件的路径
- Nokia资源文件路径的问题
- J2ME的资源文件路径问题
- 解决netbean资源文件的路径问题
- Silverlight - 资源文件的路径 - ResourceHelper
- ResourceBundle.getBundle读取资源文件的路径
- 打包jar文件的资源路径问题
- 确定水晶报表资源文件的路径
- ResourceBundle.getBundle读取资源文件的路径
- Java程序文件路径中有空格的处理
- java 读取文件路径空格和中文的处理
- C++中如何处理含有空格的文件路径
- 完全删除已安装的postgresql,防止重新安装时出现“An existing installation has been found...”
- google-perftools分析程序瓶颈(最耗cpu的代码块)
- 嵌入式或LINUX相关研发面试题目(转)
- MV88DE3010之ffmpeg与m3u8
- android 禁止待机
- Struts2 的资源文件路径的空格bug
- 字典
- 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- 开发者必看:iOS应用审核的通关秘籍
- Java之线程详解
- Oracle 操作数据库
- appboot-7227
- 【小工具】查找某个号段内的在线qq,然后通过临时会话给这些qq发消息
- Gentoo使用grub2