Java 为Spring配置Weblogic 11g

Java 为Spring配置Weblogic 11g,java,spring,weblogic11g,Java,Spring,Weblogic11g,我正在尝试为SpringHibernateServlet配置WebLogic11g 我推测web-app_3_0.xsd不受支持,因此我改为使用2.5版,但启动web应用部署时失败 java.lang.NoSuchMethodError: org.springframework.web.context.support.AnnotationConfigWebApplicationContext.getEnvironment()Lorg/springframework/core/env/Config

我正在尝试为SpringHibernateServlet配置WebLogic11g

我推测web-app_3_0.xsd不受支持,因此我改为使用2.5版,但启动web应用部署时失败

java.lang.NoSuchMethodError: org.springframework.web.context.support.AnnotationConfigWebApplicationContext.getEnvironment()Lorg/springframework/core/env/ConfigurableEnvironment;
我认为存在版本问题,或者11g不支持SpringFramework4.3.9

web.xml


您引用的特定错误似乎与Spring依赖项版本冲突有关,因为这是类似帖子发现的(例如)。您可能需要将servlet依赖项设置为“提供”范围

此外,您可能需要检查Weblogic安装当前支持的JDK和JavaEE修订版。默认情况下,WebLogic11g不支持JDK7,JavaEE6(和JDK1.6)中引入了Servlet3.0规范IIRC。查看是否要升级weblogic实例


确保开发JDK/JavaEE级别与生产硬件支持的级别一致。例如,如果您的部署环境仅支持JDK 1.6,则不要在本地使用JDK 1.8。

您引用的特定错误似乎与Spring依赖项版本冲突有关,因为类似的帖子会发现这一点(例如)。您可能需要将servlet依赖项设置为“提供”范围

此外,您可能需要检查Weblogic安装当前支持的JDK和JavaEE修订版。默认情况下,WebLogic11g不支持JDK7,JavaEE6(和JDK1.6)中引入了Servlet3.0规范IIRC。查看是否要升级weblogic实例


确保开发JDK/JavaEE级别与生产硬件支持的级别一致。例如,如果您的部署环境仅支持JDK 1.6,请不要在本地使用JDK 1.8。

我找不到有关使用WLS 11g解决此错误的信息。这个servlet一直在使用JDK1.7,所以我认为我们可以消除这个问题,我怀疑正是Spring版本控制造成了问题。我们无法升级WLS实例,因为12c会破坏很多重要的依赖关系。您使用的是Maven吗?如果是这样,请检查您的JavaServlet依赖项的范围是否如所提供的那样。您的weblogic实例中已经有一个servlet jar,因此您不想在应用程序中部署另一个servlet jar。我在JDeveloper中使用maven,但我没有使用maven进行部署。目前,所有LIB和类都已手动部署到WLS服务器。您指的是javax.servlet.jsp.jstl-api吗?我删除了servlet.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;我找不到有关使用WLS 11g解决此错误的信息。这个servlet一直在使用JDK1.7,所以我认为我们可以消除这个问题,我怀疑正是Spring版本控制造成了问题。我们无法升级WLS实例,因为12c会破坏很多重要的依赖关系。您使用的是Maven吗?如果是这样,请检查您的JavaServlet依赖项的范围是否如所提供的那样。您的weblogic实例中已经有一个servlet jar,因此您不想在应用程序中部署另一个servlet jar。我在JDeveloper中使用maven,但我没有使用maven进行部署。目前,所有LIB和类都已手动部署到WLS服务器。您指的是javax.servlet.jsp.jstl-api吗?我删除了servlet.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;
<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>...
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)