4月 7th, 2008at 13:33

Tags: ,

Struts1.3.5でActionServlet起動時にSAXNotRecognizedException

Struts起動時にエラーが発生。ActionServletが起動しない。

org.xml.sax.SAXNotRecognizedException: Feature: http://apache.org/xml/features/validation/dynamic       at org.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:100)       at com.bluecast.xml.JAXPSAXParserFactory.setFeature(JAXPSAXParserFactory.java:132)       at org.apache.commons.digester.parser.XercesParser.configureXerces(XercesParser.java:185)       at org.apache.commons.digester.parser.XercesParser.newSAXParser(XercesParser.java:138)       at org.apache.commons.digester.ParserFeatureSetterFactory.newSAXParser(ParserFeatureSetterFactory.java:71)       at org.apache.commons.digester.Digester.getParser(Digester.java:692)       at org.apache.commons.digester.Digester.getXMLReader(Digester.java:899)       at org.apache.commons.digester.Digester.parse(Digester.java:1647)       at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:745)       at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:686)       at org.apache.struts.action.ActionServlet.init(ActionServlet.java:353)       at javax.servlet.GenericServlet.init(GenericServlet.java:256)       at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:274)       at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)       at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)       at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)       at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)       at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)       at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:504)       at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1716)       at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1693)       at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1613)       at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2764)       at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:889)       at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)       at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)       at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)       at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)       at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)       at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)       at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)       at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)2007/06/20 19:39:16.457 [ERROR] ***** Unable to initialize Struts ActionServlet due to an unexpected exception or error thrown, so marking the servlet as unavailable.  Most likely, this is due to an incorrect or missing library dependency.java.lang.NullPointerException       at org.apache.commons.digester.Digester.getXMLReader(Digester.java:899)       at org.apache.commons.digester.Digester.parse(Digester.java:1647)       at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:745)       at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:686)       at org.apache.struts.action.ActionServlet.init(ActionServlet.java:353)       at javax.servlet.GenericServlet.init(GenericServlet.java:256)       at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:274)       at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)       at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)       at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)       at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)       at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)       at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:504)       at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1716)       at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1693)       at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1613)       at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2764)       at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:889)       at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)       at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)       at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)       at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)       at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)       at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)       at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)       at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)       at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)       at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26)       at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)       at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)       at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)       at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154)

原因 

http://d.hatena.ne.jp/Ochotona/20061018」にあった「http://ml.seasar.org/archives/seasar-user/2005-September/000722.html」を参考にすると、設定ファイルを読み込むときにStrutsが使っているDigesterは、xercesというXMLパーサがあるとそれを使ってしまい、このエラーが出ると考えられる(なんじゃそりゃ)。

s
Xercesは消せないのでどうしようか考え中。