2017-07-27 68 views
1

我試圖通過部署多克爾一個WebSphere應用程序的自由。我也在爲用戶界面使用Apache Struts。在我的本地機器上部署時,我沒有問題,但是當放到其他機器上時,它會報錯,說明無法加載struts2過濾器。類似乎不會丟失。泊塢窗容器中運行的一臺計算機,而不是另一個

爲什麼會在一個機器上這個容器工作,而不是其他?

堆棧跟蹤:

[ERROR ] SRVE0321E: The [struts2] filter did not load during start up. 

Filter [struts2]: could not be initialized 

[ERROR ] SRVE0315E: An exception occurred: java.lang.Throwable: javax.servlet.ServletException: Filter [struts2]: could not be initialized 

at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:5027) 

at [internal classes] 

Caused by: javax.servlet.ServletException: Filter [struts2]: could not be initialized 

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.init(FilterInstanceWrapper.java:163) 

... 1 more 

Caused by: Unable to create SAX parser - Class: com.icl.saxon.aelfred.SAXParserFactoryImpl 

File: SAXParserFactoryImpl.java 

Method: newSAXParser 

Line: 34 - com/icl/saxon/aelfred/SAXParserFactoryImpl.java:34:-1 

at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:835) 

at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:131) 

at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:100) 

at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:130) 

at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52) 

at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395) 

at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452) 

at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201) 

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.init(FilterInstanceWrapper.java:149) 

... 1 more 

Caused by: Unable to create SAX parser - Class: com.icl.saxon.aelfred.SAXParserFactoryImpl 

File: SAXParserFactoryImpl.java 

Method: newSAXParser 

Line: 34 - com/icl/saxon/aelfred/SAXParserFactoryImpl.java:34:-1 

at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:111) 

at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:830) 

... 9 more 

Caused by: javax.xml.parsers.ParserConfigurationException: AElfred parser is non-validating 

at com.icl.saxon.aelfred.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImpl.java:34) 

at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:109) 

... 10 more 
+0

的可能的複製[重度:異常起始濾波器struts2的拋出java.lang.ClassNotFoundException:org.apache.struts2.dispatcher.FilterDispatcher](https://stackoverflow.com/questions/5256939/severe-exception-starting-filter -struts2-java-lang-classnotfoundexception-org) –

回答

1

所致:javax.xml.parsers.ParserConfigurationException:AElfred解析器非驗證

Struts2的需要有一個驗證解析器。由於這個解析器是非驗證的,它應該從類路徑中移除。

受影響的解析器可以在saxon.jar找到。

+0

這樣做的竅門!用更新的版本更新了JAR,並解決了我的問題。非常感謝! – rickrizzo

+0

更新:這個沒有工作,但我也發現,我更新了JAR到新版本我也只好添加一些其他的罐子。具體來說,saxon-dom-8.jar和jaxp-api-1.4.2.jar。在添加這些之前,我收到了關於非法參數異常的錯誤。上的版本情況因人而異,但你需要那些罐子來處理DOM組件 – rickrizzo

+0

更新:我最初的想法是錯誤的。更新解析器的工作很簡單,但後來破裂了。我用我的發現回答了這個問題。 – rickrizzo

0

感謝羅馬,我能夠更準確地診斷這個問題是一個撒克遜XML解析器問題。我嘗試更換我的JAR,這實際上只是爲了一些測試,但後來打破了。

該論壇的帖子,最終解決了這個問題:http://grokbase.com/t/tomcat/users/031xc9jye7/i-cant-use-saxon-xml-parser-in-my-web-app-please-help

我的Web服務器(的WebSphere自由)嘗試使用撒克遜作爲XML解析器,但是撒克遜是非驗證,因此這是失敗的,特別是在多克,其中我正在嘗試這個。

要解決這個問題,我必須從JAR中刪除文件javax.xml.parsers.SAXParserFactory,然後服務器正常運行。

相關問題