简体   繁体   中英

Why java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class is thrown on Deploy operation?

Case 1:
When I deploy an application with Jenkins in an environment say E1, it works successfully. App gets deployed and no errors on Jenkins console output.

Case 2:
When I deploy the same application with Jenkins in another environment say E2, the deploy operation fails but the app does get deploy in the server. Though I get errors in Jenkins console. I am confused, Is it code issue or server issue, how can I fix it?
Below is the error in this case:

Target state: deploy failed on Cluster xCluster
15:53:27 java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class; 15:53:27 at org.springframework.oxm.jaxb.JaxbUtils.(JaxbUtils.java:44) 15:53:27 at org.springframework.oxm.jaxb.Jaxb2Marshaller.createJaxbContext(Jaxb2Marshaller.java:272) 15:53:27 at org.springframework.oxm.jaxb.AbstractJaxbMarshaller.afterPropertiesSet(AbstractJaxbMarshaller.java:125) 15:53:27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) 15:53:27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) 15:53:27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) 15:53:27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 15:53:27 at org.s pringframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 15:53:27 at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 15:53:27 at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 15:53:27 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 15:53:27 at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) 15:53:27 at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) 15:53:27 at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) 15:53:27 at org.springframework.boot.context.embedded.EmbeddedW ebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 15:53:27 at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) 15:53:27 at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) 15:53:27 at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) 15:53:27 at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:154) 15:53:27 at org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:134) 15:53:27 at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:87) 15:53:27 at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169) 15:53:27 at weblog ic.servlet.internal.WebAppServletContext.initContainerInitializer(WebAppServletContext.java:1389) 15:53:27 at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1326) 15:53:27 at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1312) 15:53:27 at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1829) 15:53:27 at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2891) 15:53:27 at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1661) 15:53:27 at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:823) 15:53:27 at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) 15:53:27 at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(Exte nsibleModuleWrapper.java:356) 15:53:27 at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 15:53:27 at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138) 15:53:27 at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 15:53:27 at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:216) 15:53:27 at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:211) 15:53:27 at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 15:53:27 at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:73) 15:53:27 at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:24) 15:53:27 at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment .java:729) 15:53:27 at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 15:53:27 at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258) 15:53:27 at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:61) 15:53:27 at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) 15:53:27 at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) 15:53:27 at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:587) 15:53:27 at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150) 15:53:27 at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116) 15:53:27 at weblogic.deploy.internal.targetserver.o perations.AbstractOperation.commit(AbstractOperation.java:339) 15:53:27 at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:846) 15:53:27 at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1275) 15:53:27 at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:442) 15:53:27 at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:176) 15:53:27 at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 15:53:27 at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 15:53:27 at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliv erer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 15:53:27 at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:553) 15:53:27 at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 15:53:27 at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

Appreciate the comments from Deinum and Roddy!
I was able to resolve the issue/error and the deploy operation was successful.
Here is what I did:
I found multiple versions of spring-oxm in my library. I had to remove the oldest one and and retained the latest one which came from spring-boot-starter-web-services kit. Once you have single version and latest version of spring-oxm jar, you should be able to build, test and deploy successfully.
This was the root cause of the issue.

for me: implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework:spring-beans:5.3.17'

just remove implementation 'org.springframework:spring-beans:5.3.17' it workr for me.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM