Environment
Novell Vibe 4.0 HP3
Novell Vibe 4.0 HP2
Novell Vibe 4.0 HP2
Situation
After applying Vibe 4.0 Hot Patch 2, Vibe no longer starts and users see the following error message:
Error creating bean with name 'sPropsUtil' defined in ServletContext resource [/WEB-INF/context/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationExcepti on: Could not instantiate bean class [org.kablink.teaming.util.SPropsUtil]: Constructor threw exception; nested exception is java.lang.IllegalStateException: PropsUtil is a singleton class
The Vibe appserver.log file gives more details about the underlying problem:
2015-07-21 01:17:39,137 ERROR [localhost-startStop-1] [org.springframework.web.context.ContextLoader] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultEmailFormatter' defined in ServletContext resource [/WEB-INF/context/applicationContext.xml]: Cannot resolve reference to bean 'smtpService' while setting bean property 'smtpService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'smtpService' defined in ServletContext resource [/WEB-INF/context/applicationContext.xml]: Invocation of init method failed; nested exception is java.io.IOException: Keystore was tampered with, or password was incorrect
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:334)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1417)
Error creating bean with name 'sPropsUtil' defined in ServletContext resource [/WEB-INF/context/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationExcepti on: Could not instantiate bean class [org.kablink.teaming.util.SPropsUtil]: Constructor threw exception; nested exception is java.lang.IllegalStateException: PropsUtil is a singleton class
The Vibe appserver.log file gives more details about the underlying problem:
2015-07-21 01:17:39,137 ERROR [localhost-startStop-1] [org.springframework.web.context.ContextLoader] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultEmailFormatter' defined in ServletContext resource [/WEB-INF/context/applicationContext.xml]: Cannot resolve reference to bean 'smtpService' while setting bean property 'smtpService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'smtpService' defined in ServletContext resource [/WEB-INF/context/applicationContext.xml]: Invocation of init method failed; nested exception is java.io.IOException: Keystore was tampered with, or password was incorrect
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:334)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1417)
Resolution
A complete fix for this issue is available in the Vibe 4.0 Hot Patch 4, available via the Novell Patch Finder.
For Vibe 4.0 Hot Patch 3, there are a couple of things you may need to modify manually:
For Vibe 4.0 Hot Patch 3, there are a couple of things you may need to modify manually:
- Path to the Keystore file
When executing the Vibe installer, you specify the path to the Keystore file. If left empty, Vibe assumes the default path to the keystore which is /opt/novell/teaming/apache-tomcat/conf/.keystore.
If specifying a different path, please ensure that the path you enter is relative to the Vibe's apache-tomcat folder. For example, if your keystore is located at /opt/novell/teaming/apache-tomcat/mycustomconf/.keystore then you will have to specify, mycustomconf/.keystore.
You can verify this setting is written to your running configuration by inspecting the /opt/novell/teaming/apache-tomcat/webapps/ssf/WEB-INF/classes/config/ssf-ext.properties file and looking for "smtp.service.keystore.file" - Password to the Keystore
If you have modified the default password for your Keystore from "changeit", you will need to manually update the password in two places followed by a Vibe service restart:
a. /opt/novell/teaming/apache-tomcat/conf/server.xml
Look for keystorePass in this file and type in your correct keystore password.
b. /opt/novell/teaming/apache-tomcat/webapps/ssf/WEB-INF/classes/config/ssf-ext.properties
Look for smtp.service.keystore.password in this file and type in your correct keystore password.