0

Trying to deploy spring boot application on linux server & war deployment on local is successful but when tried on linux machine getting below error can someone please provide clue what exactly spring is complaining

r","thread_name":"localhost-startStop-1","level":"ERROR","level_value":40000,"stack_trace":"org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)\n\tat org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)\n\tat org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)\n\tat org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)\n\tat org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)\n\tat org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)\n\tat org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4850)\n\tat org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5311)\n\tat org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)\n\tat org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)\n\tat org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;\n\tat org.hibernate.validator.internal.xml.ValidationBootstrapParameters.(ValidationBootstrapParameters.java:63)\n\tat org.hibernate.validator.internal.engine.ConfigurationImpl.parseValidationXml(ConfigurationImpl.java:540)\n\tat org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:337)\n\tat org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:277)\n\tat org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean.afterPropertiesSet(OptionalValidatorFactoryBean.java:40)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)\n\t... 21 common frames omitted\n"}

KOTIOS
  • 11,177
  • 3
  • 39
  • 66
  • Does this answer your question? [java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName](https://stackoverflow.com/questions/48323244/java-lang-nosuchmethoderror-javax-validation-bootstrapconfiguration-getclockpro) – Smile Mar 10 '21 at 12:02

3 Answers3

0

BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;

There is a mismatch between dependencies. As you can see javax.validation dependency has been edited or added to pom, gradle with wrong version.

getClockProviderClassName -> this method does not exist

Gurkan İlleez
  • 1,503
  • 1
  • 10
  • 12
  • but the same war is working on my local as well – KOTIOS Mar 10 '21 at 12:05
  • it is about dependencies maybe you can check your javax.validation with mvn dependecy::tree – Gurkan İlleez Mar 10 '21 at 12:07
  • Can you please explain how is dependancy works different in local & on server ? Same dependancy has been packed in same war – KOTIOS Mar 10 '21 at 12:11
  • You can simply get dependecy from war and look for method with decompiler. Maven dependecy management can cause similar issues. Omitted dependecy can be different. – Gurkan İlleez Mar 10 '21 at 12:14
  • If you can share your pom.xml maybe I can help better – Gurkan İlleez Mar 10 '21 at 12:15
  • It may be because of duplicate jars, better you should check the dependency tree and also in your workspace to see if the same class is showing in two different jars. The duplicate jar can cause issues anytime while loading the spring container. You should have a single compatible version. – Niraj Jha Mar 10 '21 at 12:47
0

As mentioned in this answer, this issue could be related mismatched javaee version.

As you are deploying the application as a war, possibly your local server lib has correct version of javaee while the linux machine server has some other version of javaee.

Smile
  • 3,832
  • 3
  • 25
  • 39
0

If a bean has no default constructor and Spring tries to instantiate it by looking for that constructor, this will result in a runtime exception; for example:

@Component
public class BeanA implements IBeanA {

    public BeanA(final String name) {
        super();
        System.out.println(name);
    }
}

The solution to such a problem is to make sure all Spring libraries have the exact same version in the project.

GvSharma
  • 2,632
  • 1
  • 24
  • 30