java.lang.NoClassDefFoundError:org / springframework / beans / PropertyAccessorFactory

时间:2017-07-21 09:26:37

标签: spring weblogic-10.x weblogic11g

我正在尝试通过Red Hat Enterprise Linux Server(6.1)上的Weblogic 10.3.6.0部署Web应用程序。

Java版:Java SE运行时环境(Build 1.7.0_80-b15)

Javac版本:1.7.0_80

我在bea_home\user_projects\domains\testDomain\lib路径

上有以下内容
glassfish.jstl_1.2.0.1.jar
javax.jsf_1.1.0.0_1-2.jar

以下库安装在控制台的“部署”部分

Library jsf(1.2,1.2.9.0)
Library jstl(1.2,1.2.0.1)

服务器正在运行,Web应用程序的状态变为“活跃”状态。但访问该应用程序将失败,并在日志上显示以下错误

2017-07-19 11:57:04,805 ERROR    org.jasig.cas.web.init.SafeDispatcherServlet - SafeDispatcherServlet: 
The Spring DispatcherServlet we wrap threw on init.
But for our having caught this error, the servlet would not have initialized.
java.lang.NoClassDefFoundError: org/springframework/beans/PropertyAccessorFactory
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:114)
    at javax.servlet.GenericServlet.init(GenericServlet.java:241)
    at org.jasig.cas.web.init.SafeDispatcherServlet.init(SafeDispatcherServlet.java:64)
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
    at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
    at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
    at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:539)
    at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1981)
    at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1955)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1874)
    at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3154)
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1518)
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:484)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
    at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
    at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:671)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
    at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:59)
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
    at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
    at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
    at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
    at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
    at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
    at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
    at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
    at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
    at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:180)
    at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:96)
    at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.PropertyAccessorFactory
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)

我尝试通过在Windows 7 x64上运行的Weblogic 11gr2部署相同的ear文件,并安装了相同的库并成功访问了该应用程序。

我认为weblogic版本之间可能存在兼容性问题,但我还没有在网上找到任何证明它的东西。有关如何使错误消失并成功访问应用程序的任何见解?

非常感谢。

1 个答案:

答案 0 :(得分:0)

来自spring-beans

PropertyAccessorFactory因此您可以尝试添加spring-beans-<version>.jar