尝试在linux服务器上部署spring引导应用程序&在本地部署war是成功的,但是当在linux机器上尝试时,出错了,请有人提供确切的spring抱怨的线索吗?
“"stack_trace":"org.springframework.beans.factory.BeanCreationException: r”、"thread_name":"localhost-startStop-1“、"level":" Error”、"level_value":40000,创建带有init方法名称'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0':调用的
错误失败;嵌套异常为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\tatorg.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。javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;Thread.run(Thread.java:748)\n由: java.lang.NoSuchMethodError:\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个常见帧省略\n“}
发布于 2021-03-10 12:04:15
创建名为'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0':的bean的错误-- init方法调用失败;嵌套的异常是java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;
依赖项之间存在不匹配。如您所见,javax.validation依赖项已被编辑或添加到pom中,请使用错误的版本进行分级。
getClockProviderClassName ->此方法不存在
发布于 2021-03-10 13:05:52
正如this答案中提到的,这个问题可能与javaee版本不匹配有关。
当您将应用程序部署为war时,您的本地服务器库可能有正确的javaee版本,而linux服务器则有一些其他版本的javaee。
发布于 2021-03-10 14:31:06
如果bean没有默认构造函数,Spring试图通过查找该构造函数实例化它,这将导致运行时异常;例如:
@Component
public class BeanA implements IBeanA {
public BeanA(final String name) {
super();
System.out.println(name);
}
}解决这个问题的方法是确保所有Spring库在项目中都有完全相同的版本。
https://stackoverflow.com/questions/66564331
复制相似问题