struts2-java.lang.NullPointerException at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading(FileManager.java

          最近在學習Struts2的時候,總是無法啟動Tomcat服務器,報錯如下,用6.0、7.0都不行,起初以為是環境的問題,弄了一下午還是不行。我用的Strtus jar是2.16但是前幾天做項目還是好好,可切換個工作空間卻就老是報如下的錯誤,甚是煩人。在網上轉了好久,用試用了他的很多方法都不能解決問題。

          1.strtus.xml

              在struts.xml中配置了<constant name="struts.devMode" value="true"/> (據說配置了<constant name="struts.configuration.xml.reload" value="true"/>也會報錯,這個我沒試過)
          時啟動tomcat報錯。
          org.apache.catalina.core.StandardContext filterStart
          嚴重: Exception starting filter struts2
          java.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:774)
              at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:191)
              at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
              at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
              at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
              at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
              at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
              at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
              at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
              at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
              at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
              at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
              at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
              at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
              at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
              at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
              at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
              at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
              at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
              at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
              at org.apache.catalina.core.StandardService.start(StandardService.java:516)
              at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
              at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
              at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
          2009-2-4 22:40:54 org.apache.catalina.core.StandardContext start
          嚴重: Error filterStart
          2009-2-4 22:40:54 org.apache.catalina.core.StandardContext start
          嚴重: Context [/Struts2Demo2] startup failed due to previous errors

          網上解決辦法:devMode模式是開發模式,開啟它則默認開啟了i18n.reload、 configuration.xml.reload。這個錯誤是由于configuration.xml.reload設置為true倒置的,但是網上的資料沒有說明原因及解決辦法,倒是一個國外的apache相關BBS上有人說這是216版本的BUG,并且附上了一個.patch修正文件,說217版本會修正。。。可我不會用也不知道是不是這個原因,這個問題就一直擱置在這里了。過了幾個月,也就是最近網上查了下發現在apache的一個郵件列表中有關于這個的解釋,原因很簡單,tomcat的安裝路徑包含空格我的成功的辦法:據說這是struts2.1.6的bug,換新版本2.1.8就ok,當然還要相應的xwork版本,好像是xwork2.1.6,我將原來的2個舊jar包換成新的就ok了。。。。無語啊。。。一試果然如此。

          注意:2個jar包換了之后重啟tomcat可能會報錯, Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar,這個錯誤是開始那個引起的,把tomcat中相應項目刪除了,重新部署就沒問題了

             下面是4個開發模式常用配置的簡介---(來自http://hi.baidu.com/12261016/blog/item/1d7f6ccaded7248ec91768ec.html)
              <!-- 開啟使用開發模式,詳細錯誤提示 -->
              <!-- <constant name="struts.devMode" value="true"/>-->
              <!-- 指定每次請求到達,重新加載資源文件 -->
              <!-- <constant name="struts.i18n.reload" value="true"/>-->
              <!-- 指定每次配置文件更改后,自動重新加載 -->
              <!-- <constant name="struts.configuration.xml.reload" value="true"/>-->
              <!-- 指定XSLT Result使用樣式表緩存 -->
              <!-- <constant name="struts.xslt.nocache" value="true"/>-->

          posted on 2012-11-06 13:30 youngturk 閱讀(2140) 評論(0)  編輯  收藏 所屬分類: Java基礎struts2服務器環境部署

          <2012年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結構
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 晋城| 商都县| 常宁市| 纳雍县| 中山市| 岗巴县| 忻城县| 台湾省| 沂水县| 嘉峪关市| 阿巴嘎旗| 阿拉善右旗| 永登县| 德安县| 汝州市| 开封县| 临泉县| 铁岭县| 佛学| 城固县| 格尔木市| 萨迦县| 开化县| 甘泉县| 义马市| 上饶县| 乌苏市| 桂阳县| 九龙城区| 双牌县| 江城| 汉寿县| 柞水县| 洮南市| 京山县| 渝中区| 朝阳区| 鞍山市| 靖宇县| 大连市| 海兴县|