【问题标题】:Why java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class is thrown on Deploy operation?为什么 java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class 在部署操作中被抛出?
【发布时间】:2018-07-17 18:49:47
【问题描述】:

案例 1:
当我在 E1 环境中使用 Jenkins 部署应用程序时,它可以成功运行。应用程序已部署,Jenkins 控制台输出没有错误。

案例 2:
当我在另一个环境(例如 E2)中使用 Jenkins 部署相同的应用程序时,部署操作失败,但应用程序确实在服务器中部署。虽然我在 Jenkins 控制台中遇到错误。我很困惑,是代码问题还是服务器问题,我该如何解决?
以下是这种情况下的错误:

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

【问题讨论】:

  • 您的环境有些不同,很可能是容器类路径中可用的 jar。
  • 谢谢!至少它似乎不是代码问题。在哪里可以找到容器类路径中可用的 jar 以及其中需要哪些 jar?
  • Weblogic 内部带有 spring。添加 weblogic 描述符,以便您可以配置应用程序首选包。默认情况下,首选服务器提供的版本。
  • @M.Deinum 我不知道如何添加 WL 描述符。还有哪些 jar 不存在或冲突导致此问题?
  • 所以,我的战争模块中没有 web-app 文件夹。所以现在我已经添加了它,下面是它的内容。 > org.springframework.*org.apache.commons。 *org.joda.time.*org.apache.logging.*-name> org.slf4j 不确定要包含哪个首选包来解决我的错误。

标签: spring spring-boot weblogic12c spring-framework-beans spring-oxm


【解决方案1】:

感谢 Deinum 和 Roddy 的 cmets!
我能够解决问题/错误,并且部署操作成功。
这是我所做的:
我在我的库中找到了多个版本的 spring-oxm。我必须删除最旧的并保留来自 spring-boot-starter-web-services 工具包的最新的。一旦你有了 spring-oxm jar 的单一版本和最新版本,你应该能够成功构建、测试和部署。
这是问题的根本原因。

【讨论】:

    【解决方案2】:

    对我来说: 实现 'org.springframework.boot:spring-boot-starter-web' 实现 'org.springframework:spring-beans:5.3.17'

    只需删除 implementation 'org.springframework:spring-beans:5.3.17' 它为我工作。

    【讨论】:

      猜你喜欢
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多