I have a working application that runs fine on the Tomcat embedded in Cuba Studio but fails when I deploy it to my production Tomcat server (which is running other web sites without errors). What have I done wrong and how do I fix this?
Here were my steps:
I inserted the buildWar code given in the docs with appropriate tweaks:
task buildWar(type: CubaWarBuilding) {
coreContextXmlPath = 'modules/core/web/META-INF/context.xml'
appProperties = ['cuba.automaticDatabaseUpdate':'true' ]
includeContextXml = true
includeJdbcDriver = true
appHome = '/usr/share/apache-tomcat-7.0.57/webapps/schweitzer'
singleWar = false
}
I then executed “./gradlew buildWar” from the project directory and finally copied the two .war files in build/distributions/war to my Tomcat webapps directory.
I am attaching an excerpt from catalina.out that shows the deployment log entries. Everything is fine until I reach this point:
2016-12-14 09:45:53.410 WARN [localhost-startStop-7] com.haulmont.cuba.core.sys.CubaClassPathXmlApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.spr
ingframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cuba_Scripting' defined in URL [jar:file:/usr/share/apache-tomcat-7.0.57/webapps/schweitzer/WEB-INF/lib/cuba-client-6
.3.4.jar!/com/haulmont/cuba/client/sys/ScriptingClientImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'cuba_JavaClassLoader' defined in URL [jar:f
ile:/usr/share/apache-tomcat-7.0.57/webapps/schweitzer/WEB-INF/lib/cuba-global-6.3.4.jar!/com/haulmont/cuba/core/sys/javacl/JavaClassLoader.class]: Instantiation of bean failed; nested exception is org.sprin
gframework.beans.BeanInstantiationException: Failed to instantiate [com.haulmont.cuba.core.sys.javacl.JavaClassLoader]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.
haulmont.cuba.core.sys.javacl.JavaClassLoader.<init>(); nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cuba_JavaClassLoader' defined in URL [jar:f
ile:/usr/share/apache-tomcat-7.0.57/webapps/schweitzer/WEB-INF/lib/cuba-global-6.3.4.jar!/com/haulmont/cuba/core/sys/javacl/JavaClassLoader.class]: Instantiation of bean failed; nested exception is org.sprin
gframework.beans.BeanInstantiationException: Failed to instantiate [com.haulmont.cuba.core.sys.javacl.JavaClassLoader]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.
haulmont.cuba.core.sys.javacl.JavaClassLoader.<init>()
2016-12-14 09:45:53.419 ERROR [localhost-startStop-7] com.haulmont.cuba.web.sys.WebAppContextLoader - Error initializing application
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cuba_Scripting' defined in URL [jar:file:/usr/share/apache-tomcat-7.0.57/webapps/schweitzer/WEB-INF/lib/cuba-c
lient-6.3.4.jar!/com/haulmont/cuba/client/sys/ScriptingClientImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'cuba_JavaClassLoader' defined in URL
[jar:file:/usr/share/apache-tomcat-7.0.57/webapps/schweitzer/WEB-INF/lib/cuba-global-6.3.4.jar!/com/haulmont/cuba/core/sys/javacl/JavaClassLoader.class]: Instantiation of bean failed; nested exception is or
g.springframework.beans.BeanInstantiationException: Failed to instantiate [com.haulmont.cuba.core.sys.javacl.JavaClassLoader]: No default constructor found; nested exception is java.lang.NoSuchMethodExceptio
n: com.haulmont.cuba.core.sys.javacl.JavaClassLoader.<init>(); nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cuba_JavaClassLoader' defined in URL
[jar:file:/usr/share/apache-tomcat-7.0.57/webapps/schweitzer/WEB-INF/lib/cuba-global-6.3.4.jar!/com/haulmont/cuba/core/sys/javacl/JavaClassLoader.class]: Instantiation of bean failed; nested exception is or
g.springframework.beans.BeanInstantiationException: Failed to instantiate [com.haulmont.cuba.core.sys.javacl.JavaClassLoader]: No default constructor found; nested exception is java.lang.NoSuchMethodExceptio
n: com.haulmont.cuba.core.sys.javacl.JavaClassLoader.<init>()
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:775) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at com.haulmont.cuba.core.sys.CubaClassPathXmlApplicationContext.<init>(CubaClassPathXmlApplicationContext.java:27) ~[cuba-global-6.3.4.jar:6.3.4]
at com.haulmont.cuba.core.sys.AbstractAppContextLoader.createApplicationContext(AbstractAppContextLoader.java:79) ~[cuba-global-6.3.4.jar:6.3.4]
at com.haulmont.cuba.core.sys.AbstractAppContextLoader.initAppContext(AbstractAppContextLoader.java:56) ~[cuba-global-6.3.4.jar:6.3.4]
at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:71) ~[cuba-global-6.3.4.jar:6.3.4]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4994) [catalina.jar:7.0.57]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492) [catalina.jar:7.0.57]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:7.0.57]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) [catalina.jar:7.0.57]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) [catalina.jar:7.0.57]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) [catalina.jar:7.0.57]
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081) [catalina.jar:7.0.57]
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877) [catalina.jar:7.0.57]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_25]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25]
I get a similar error in the core app deployment:
2016-12-14 09:46:00.288 WARN [localhost-startStop-7] com.haulmont.cuba.core.sys.CubaCoreApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cuba_ScreenProfilerService': Invocation of init method failed; nested exception is java.lang.NullPointerException
2016-12-14 09:46:00.298 ERROR [localhost-startStop-7] com.haulmont.cuba.core.sys.AppContextLoader - Error initializing application
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cuba_ScreenProfilerService': Invocation of init method failed; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:775) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at com.haulmont.cuba.core.sys.CubaClassPathXmlApplicationContext.<init>(CubaClassPathXmlApplicationContext.java:27) ~[cuba-global-6.3.4.jar:6.3.4]
at com.haulmont.cuba.core.sys.CubaCoreApplicationContext.<init>(CubaCoreApplicationContext.java:26) ~[cuba-core-6.3.4.jar:6.3.4]
at com.haulmont.cuba.core.sys.AppContextLoader.createApplicationContext(AppContextLoader.java:90) ~[cuba-core-6.3.4.jar:6.3.4]
at com.haulmont.cuba.core.sys.AppContextLoader.createApplicationContext(AppContextLoader.java:36) ~[cuba-core-6.3.4.jar:6.3.4]
at com.haulmont.cuba.core.sys.AbstractAppContextLoader.initAppContext(AbstractAppContextLoader.java:56) ~[cuba-global-6.3.4.jar:6.3.4]
at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:71) ~[cuba-global-6.3.4.jar:6.3.4]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4994) [catalina.jar:7.0.57]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492) [catalina.jar:7.0.57]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:7.0.57]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) [catalina.jar:7.0.57]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) [catalina.jar:7.0.57]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) [catalina.jar:7.0.57]
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081) [catalina.jar:7.0.57]
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877) [catalina.jar:7.0.57]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_25]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25]
Caused by: java.lang.NullPointerException: null
at com.haulmont.cuba.core.app.ScreenProfilerServiceBean.init(ScreenProfilerServiceBean.java:95) ~[cuba-core-6.3.4.jar:6.3.4]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_25]
at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_25]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:365) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:310) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE]
... 32 common frames omitted