tomcat - 带有 JSF2 的 Grails : WAR cannot run on Tomcat 6

标签 tomcat grails jsf-2

我正在为我的应用程序使用 jsf2 插件。 使用“run-app”运行应用程序,效果很好。

但是当我将war部署到干净的Tomcat 6时,出现了这个错误:

com.sun.faces.config.ConfigurationException: 
  Source Document: web.xml
  Cause: Unable to create a new instance of 'org.doc4web.grails.jsf.facelets.GrailsResourceResolver': org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'groovyPageResourceLoader' is defined
    at com.sun.faces.facelets.util.ReflectionUtil.decorateInstance(ReflectionUtil.java:252)
    at com.sun.faces.application.ApplicationAssociate.createFaceletFactory(ApplicationAssociate.java:582)
    at com.sun.faces.application.ApplicationAssociate.<init>(ApplicationAssociate.java:215)
    at com.sun.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:209)
    at com.sun.faces.application.ApplicationFactoryImpl.getApplication(ApplicationFactoryImpl.java:107)
    at com.sun.faces.config.processor.AbstractConfigProcessor.getApplication(AbstractConfigProcessor.java:130)
    at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:252)
    at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
    at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:116)
    at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
    at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:223)
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
    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.deployWAR(HostConfig.java:943)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
    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:1061)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    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(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:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'groovyPageResourceLoader' is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:266)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1075)
    at org.doc4web.grails.jsf.facelets.GrailsResourceResolver.<init>(GrailsResourceResolver.java:34)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.sun.faces.facelets.util.ReflectionUtil.decorateInstance(ReflectionUtil.java:233)
    ... 36 more

更多信息:

我必须将 JSF-API (Mojarra 2.0.2) 库复制到 Tomcat 库文件夹。否则无法找到 javax.faces.application.ApplicationFactory

最佳答案

谷歌代码中有一个备用插件分支:jsf4g

jsf2 插件将无法在生产模式下工作,因为对值 groovyPageResourceLoader 的引用仅在开发模式下可用 Ref- grails-1.x

forked 插件有一个修复,但这不适用于需要修复的 Grails2.x。

关于tomcat - 带有 JSF2 的 Grails : WAR cannot run on Tomcat 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8255373/

相关文章:

java - 无法连接到 Mariadb Xampp 数据库

java - 最佳实践 - 从 View 访问域对象列表?

Grails:如何从 Controller 中检索 UserDetails 对象?

Java EE 6 : Target Unreachable, 标识符 'helloBean' 解析为空

JSF - 更改 h :commandButton (2. 0) 的操作

maven - 使用 cas-server-webapp-tomcat 升级和设置 CAS 5.1.x

tomcat - Apache Tomcat : . war 文件

mysql 错误 :ERROR hbm2ddl. SchemaUpdate - 将 Grails 应用程序推送到 Cloud Foundry 时行大小太大

jsf - 禁用 ="#{not recordsTransferSearch.isDisabled}"未调用 isDisabled() 方法

windows - Tomcat环境变量错误值