问题描述
户使用tongweb7049m10部署应用,报错如下所示:
[jsf-impl][Critical error during deployment:]com.tongweb.faces.config.ConfigurationException: Factory'javax.faces.render.RenderKitFactory'was not configured properly. at com.tongweb.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:332)at com.tongweb.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:238)at com.tongweb.faces.config.ConfigManager.initialize(ConfigManager.java:437)at com.tongweb.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:220)at com.tongweb.catalina.core.StandardContext.listenerStart(StandardContext.java:4811)at com.tongweb.catalina.core.StandardContext.startInternal(StandardContext.java:5389)at com.tongweb.catalina.core.ThanosStandardContext.startInternal(ThanosStandardContext.java:204)at com.tongweb.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at com.tongweb.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:734)at com.tongweb.catalina.core.ContainerBase.addChild(ContainerBase.java:710)at com.tongweb.catalina.core.StandardHost.addChild(StandardHost.java:727)at com.tongweb.catalina.core.ThanosStandardHost.addChild(ThanosStandardHost.java:774)at com.tongweb.web.thanos.startup.ThanosHostConfig.deployWar(ThanosHostConfig.java:231)at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.fireWebtierProcess(ThanosWebtierWebAppBuilder.java:473)at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.deployApplication(ThanosWebtierWebAppBuilder.java:384)at com.tongweb.deploy.TongWebDeployer.deploy0(TongWebDeployer.java:398)at com.tongweb.deploy.TongWebDeployer$1.run(TongWebDeployer.java:335)at java.lang.Thread.run(Thread.java:750)Caused by: javax.faces.FacesException: org.ajax4jsf.renderkit.ChameleonRenderKitFactory at javax.faces.FactoryFinderInstance.getImplGivenPreviousImpl(FactoryFinderInstance.java:407)at javax.faces.FactoryFinderInstance.getImplementationInstance(FactoryFinderInstance.java:270)at javax.faces.FactoryFinderInstance.getFactory(FactoryFinderInstance.java:543)at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:283)at com.tongweb.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:330)...17moreCaused by: java.lang.InstantiationException: org.ajax4jsf.renderkit.ChameleonRenderKitFactory at java.lang.Class.newInstance(Class.java:427)at javax.faces.FactoryFinderInstance.getImplGivenPreviousImpl(FactoryFinderInstance.java:405)...21moreCaused by: java.lang.NoSuchMethodException: org.ajax4jsf.renderkit.ChameleonRenderKitFactory.<init>()at java.lang.Class.getConstructor0(Class.java:3082)at java.lang.Class.newInstance(Class.java:412)...22more[2026-04-1411:29:39629][SEVERE][Thread-62][core][Exception sending context initialized event to listener instance of class com.tongweb.faces.config.ConfigureListener]java.lang.RuntimeException: com.tongweb.faces.config.ConfigurationException: Factory'javax.faces.render.RenderKitFactory'was not configured properly. at com.tongweb.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:285)at com.tongweb.catalina.core.StandardContext.listenerStart(StandardContext.java:4811)at com.tongweb.catalina.core.StandardContext.startInternal(StandardContext.java:5389)at com.tongweb.catalina.core.ThanosStandardContext.startInternal(ThanosStandardContext.java:204)at com.tongweb.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at com.tongweb.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:734)at com.tongweb.catalina.core.ContainerBase.addChild(ContainerBase.java:710)at com.tongweb.catalina.core.StandardHost.addChild(StandardHost.java:727)at com.tongweb.catalina.core.ThanosStandardHost.addChild(ThanosStandardHost.java:774)at com.tongweb.web.thanos.startup.ThanosHostConfig.deployWar(ThanosHostConfig.java:231)at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.fireWebtierProcess(ThanosWebtierWebAppBuilder.java:473)at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.deployApplication(ThanosWebtierWebAppBuilder.java:384)at com.tongweb.deploy.TongWebDeployer.deploy0(TongWebDeployer.java:398)at com.tongweb.deploy.TongWebDeployer$1.run(TongWebDeployer.java:335)at java.lang.Thread.run(Thread.java:750)Caused by: com.tongweb.faces.config.ConfigurationException: Factory'javax.faces.render.RenderKitFactory'was not configured properly. at com.tongweb.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:332)at com.tongweb.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:238)at com.tongweb.faces.config.ConfigManager.initialize(ConfigManager.java:437)at com.tongweb.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:220)...14moreCaused by: javax.faces.FacesException: org.ajax4jsf.renderkit.ChameleonRenderKitFactory at javax.faces.FactoryFinderInstance.getImplGivenPreviousImpl(FactoryFinderInstance.java:407)at javax.faces.FactoryFinderInstance.getImplementationInstance(FactoryFinderInstance.java:270)at javax.faces.FactoryFinderInstance.getFactory(FactoryFinderInstance.java:543)at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:283)at com.tongweb.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:330)...17moreCaused by: java.lang.InstantiationException: org.ajax4jsf.renderkit.ChameleonRenderKitFactory at java.lang.Class.newInstance(Class.java:427)at javax.faces.FactoryFinderInstance.getImplGivenPreviousImpl(FactoryFinderInstance.java:405)...21moreCaused by: java.lang.NoSuchMethodException: org.ajax4jsf.renderkit.ChameleonRenderKitFactory.<init>()at java.lang.Class.getConstructor0(Class.java:3082)at java.lang.Class.newInstance(Class.java:412)...22more原因
tongweb自带有jsf相关jar包,与应用的jsf的jar冲突。
解决方案
找到conf目录下的tongweb.xml,添加一下配置再重启: