【问题标题】:Spring Webapp in Weblogic publish errorWeblogic中的Spring Webapp发布错误
【发布时间】:2014-03-10 18:00:45
【问题描述】:

当我尝试发布我的 Spring MVC Webapp 时出现以下异常:

上下文初始化失败 || java.lang.LinkageError:加载程序 违反约束:加载程序(实例 org/springframework/context/support/ContextTypeMatchClassLoader$ContextOverridingClassLoader) 先前为具有名称的不同类型启动加载 “org/apache/http/params/HttpParams”在 java.lang.ClassLoader.defineClass1(本机方法)在 java.lang.ClassLoader.defineClassCond(未知来源)在 java.lang.ClassLoader.defineClass(未知来源)在 java.lang.ClassLoader.defineClass(未知来源)在 org.springframework.context.support.ContextTypeMatchClassLoader$ContextOverridingClassLoader.loadClassForOverriding(ContextTypeMatchClassLoader.java:109) 在 org.springframework.core.OverridingClassLoader.loadClass(OverridingClassLoader.java:61) 在 java.lang.ClassLoader.loadClass(Unknown Source) 在 java.lang.Class.getDeclaredMethods0(本机方法)在 java.lang.Class.privateGetDeclaredMethods(未知来源)在 java.lang.Class.getDeclaredMethods(未知来源)在 org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:467) 在 org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:481) 在 org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:451) 在 org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:511) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:634) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:573) 在 org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:510) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:339) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:308) 在 org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:638) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454) 在 org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 在 weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181) 在 weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1873) 在 weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3161) 在 weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1511) 在 weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:483) 在 weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425) 在 weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) 在 weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119) 在 weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200) 在 weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247) 在 weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425) 在 weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) 在 weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119) 在 weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27) 在 weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:636) 在 weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) 在 weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:205) 在 weblogic.application.internal.EarDeployment.activate(EarDeployment.java:58) 在 weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161) 在 weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79) 在 weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184) 在 weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361) 在 weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51) 在 weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200) 在 weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30) 在 weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240) 在 weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169) 在 weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123) 在 weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:180) 在 weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:96) 在 weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64) 在 weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21) 在 weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145) 在 weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)^^

【问题讨论】:

    标签: spring spring-mvc weblogic


    【解决方案1】:

    您很可能会两次加载同一个类并使用两个不同的版本。具体来说,您可能有两个版本:

    org/apache/http/params/HttpParams
    

    检查您正在加载的应用程序以及 weblogic 已经提供的内容。您可以删除重复的类/jar,例如:

    java.lang.LinkageError Error in Class Loading

    java.lang.LinkageError: loader constraint violation previously initiated loading for a different type with name "javax/xml/soap/SOAPMessage"

    或者您可以使用 weblogic 中的首选类来明确声明要使用的类的版本(可能是您的应用程序中打包的版本)。见:

    NetBeans taking JSF Server library instead of registered libraries

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多