1

I am attempting to configure Weblogic 11g for a Spring-Hibernate servlet.

I gather that web-app_3_0.xsd is not supported so I changed to using version 2.5 but when I start the web-app deployment it fails.

java.lang.NoSuchMethodError: org.springframework.web.context.support.AnnotationConfigWebApplicationContext.getEnvironment()Lorg/springframework/core/env/ConfigurableEnvironment;

I think there is a version issue or maybe 11g does not support Spring framework 4.3.9.

web.xml

<web-app
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


  <context-param>
    <param-name>contextClass</param-name>
    <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
  </context-param>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/configuration/applicationContext.xml</param-value>
  </context-param>

  <listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>

  <!-- A demo servlet, add servlets below -->
    <servlet>...

I have tried adding spring-context.xsd into the schemaLocation but that didn't help.

Stack trace

Failure occurred in the execution of deployment request with ID '1501679769546' for task '157'.
Error is: 'weblogic.application.ModuleException: ' weblogic.application.ModuleException:
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1529) 
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:486) 
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.SingleModuleDeployment.activate(SingleModuleDeployment.java:44) 
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161) 
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) 
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:573) 
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150) 
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116) 
at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:149) 
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:327) 
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844) 
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253) 
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440) 
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550) 
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263) 
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) 
Caused By: java.lang.NoSuchMethodError: org.springframework.web.context.support.AnnotationConfigWebApplicationContext.getEnvironment()Lorg/springframework/core/env/ConfigurableEnvironment;
at org.springframework.web.context.support.AnnotationConfigWebApplicationContext.getAnnotatedBeanDefinitionReader(AnnotationConfigWebApplicationContext.java:262) 
at org.springframework.web.context.support.AnnotationConfigWebApplicationContext.loadBeanDefinitions(AnnotationConfigWebApplicationContext.java:189) 
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123) 
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481) 
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181) 
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1871) 
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3173) 
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1527) 
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:486) 
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.SingleModuleDeployment.activate(SingleModuleDeployment.java:44) 
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161) 
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) 
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:573) 
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150) 
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116) 
at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:149) 
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:327) 
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844) 
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253) 
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440) 
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550) 
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263) 
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) 
Legacy
  • 19
  • 4

1 Answers1

0

The specific error you reference appears to be related to a Spring dependency version conflict, since this is what similar posts find (for example NoSuchMethodError: org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()Lorg/springframework/core/env/Environment; With zkoss). You may need to set you servlet dependency to "provided" scope.

Also, you may want to check the JDK and JavaEE revisions your Weblogic installation currently supports. By default, WebLogic 11g does not support JDK7, and IIRC, the Servlet 3.0 spec was introduced in JavaEE 6 (and JDK 1.6). See https://docs.oracle.com/cd/E23943_01/doc.1111/e14142/jdk7.htm#WLSIG262 if you wish to upgrade your weblogic instance.

Make sure your development JDK/JavaEE level is consistent with the levels supported by your production hardware. For example, don't use JDK 1.8 locally if your deployment environment only supports JDK 1.6.

Michael Peacock
  • 2,011
  • 1
  • 11
  • 14
  • I can find no information about resolving this error with WLS 11g. This servlet has been using JDK 1.7 without issue so I think we can eliminate that, it is just the Spring versioning that I suspect is causing problems. We cannot upgrade the WLS instance due to lots of significant dependencies that 12c would break. – Legacy Aug 02 '17 at 15:19
  • Are you using Maven? If so, check that your Java servlet dependency is scoped as provided. There's already a servlet jar in your weblogic instance, so you don't want to deploy another one with your app. – Michael Peacock Aug 02 '17 at 15:43
  • I am using maven in JDeveloper but I am not deploying with maven. All the libs and classes have been manually deployed to the WLS server, at the moment. Are you referring to javax.servlet.jsp.jstl-api ? – Legacy Aug 03 '17 at 08:30
  • I removed servlet.jar but the error remains the same. – Legacy Aug 03 '17 at 08:41
  • These are the Spring jars currently deployed: spring-aop-4.3.9.RELEASE.jar ; spring-aspects-4.3.9.RELEASE.jar ; spring-beans-4.3.9.RELEASE.jar ; spring-context-4.3.9.RELEASE.jar ; spring-context-support-4.3.9.RELEASE.jar ; spring-core-4.3.9.RELEASE.jar ; spring-expression-4.3.9.RELEASE.jar ; spring-jdbc-4.3.9.RELEASE.jar ; spring-jms-4.3.9.RELEASE.jar ; spring-orm-4.3.9.RELEASE.jar ; spring-tx-4.3.9.RELEASE.jar ; spring-web-4.3.9.RELEASE.jar ; – Legacy Aug 03 '17 at 15:07