【发布时间】: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