Spring 3 to 4 Upgrade - ClassNotFoundException on WebLogic 10.3 Start Up
<p>Let me respectfully start off by stating that I understand <strong>what</strong> a <code>ClassNotFoundException</code> is.</p>

<p>My issue here is why?</p>

<p>The background is that I am upgrading from Spring 3.0.0 to Spring 4.2.5. I have gotten a successful Eclipse and Maven build. I have then deployed my EAR to the domain that I have always used for this application. </p>

<p>During start up, I get the following exception:</p>

<pre><code>####&lt;May 7, 2016 6:30:45 PM PDT&gt; &lt;Error&gt; &lt;Deployer&gt; &lt;FOO-LTW2&gt; &lt;AdminServer&gt; &lt;[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1462671045884&gt; &lt;BEA-149205&gt; &lt;Failed to initialize the application 'myEar-1' due to error java.lang.ClassNotFoundException: org.springframework.ejb.support.AbstractJmsMessageDrivenBean.
java.lang.ClassNotFoundException: org.springframework.ejb.support.AbstractJmsMessageDrivenBean
    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:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343)
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
    at weblogic.ejb.container.deployer.EJBModule.setupEJBToImplClassDependencies(EJBModule.java:1845)
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:414)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:45)
    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:613)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:184)
    at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:58)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
    at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:141)
    at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:39)
    at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:191)
    at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
    at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
    at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:165)
    at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
    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:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
</code></pre>

<p>So I know that <code>org.springframework.ejb.support.AbstractJmsMessageDrivenBean</code> was removed in Spring 3.2. Which I am not using!</p>

<p>The stack trace also have no references to my application code. It seems to stop/start with Weblogic specific code. Not sure if that means anything, but figured I would point out that detail.</p>

<p>I have triple checked maven, any spring config related classes that I use, etc... There is NO reference to the above class or even the package it belongs in. </p>

<p>I have also ensured there are no spring 3.x jars anywhere in Weblogic libs. I have also emptied my domains server/tmp, server/cache, server/logs folders to ensure there is nothing hanging around.</p>

<p>So I am confused as to why Weblogic thinks I need this class when I don't need it or explicitly, purposefully refer to it.</p>

<p>Thank You!!</p>