当前位置: 首页 > 知识库问答 >
问题:

从WebLogic 12.1.3升级到12.2.1.4破坏了我们使用Spring Framework 3.0.2的应用程序

舒仲渊
2023-03-14

我们公司让我们从Oracle WebLogic 12.1.3升级到12.2.1.4,因为12.1.3失去支持/即将失去支持。

我们有一个主要的应用程序,它使用Spring Framework v3.0.2。当我们将EAR部署到12.2.1.4并尝试使用任何web服务时,我们会得到这个错误堆栈跟踪。我已经删除了使用通用名称指定我们公司的名称,但您应该能够了解发生的事情的要点:

2021-06-02 15:21:50.019/27.406 Oracle Coherence GE12.2.1.4.0(线程=[STANDBY]执行线程:'10'用于队列:'weblogic.kernel.Default(自调整)',成员=n/a):在ReST 02.06.2021 15:22:11上配置的版本化多集群管理-尝试getBean(DefaultJBL)时出错:创建名称为'DefaultJBL'的bean时出错,该名称在URL[zip: C:/javadev/server/appserver中定义。12.2.1.4/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/lasor/2wlg44/lib/Lasor_core-1.0.jar! /com/foo/app/corebuslogic/common/jbl/DefaultJBL.class]:bean初始化失败;嵌套异常是org.springframework.aop.framework.AopConfigException:意外的AOP异常;嵌套异常是java.lang.RuntimeException:java.lang.ClassNotFoundException:com.foo.app.corebuslogic.common.exceptions.LoggedExceptionorg.springframework.beans.factory.BeanCreationException:创建名称为'DefaultJBL'的bean时出错,该名称在URL[zip: C:/javadev/server/appserver中定义。12.2.1.4/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/app/2wlg44/lib/App_core-1.0.jar!/com/foo/app/corebuslogic/common/jbl/DefaultJBL.class]: bean初始化失败;嵌套异常是actory.getAopConfigException:意外的AOP异常;嵌套异常是actory.java:190RuntimeException:org.springframework.context.support.ClassNotFoundException:ontext.getLoggedException在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)在org.springframework.beans.factory.support.AbstractBeanFactory$1.get对象(AbstractBeanFactory.java:291)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)在org.springframework.beans.factory.support.AbstractBeanForg.springframework.aop.framework.Bean(AbstractBeanFjava.lang.)在java.lang.AbstractApplication ationCcom.aep.lasor.corebuslogic.common.exceptions.Bean(AbstractApplication ationContext. java: 1045)在com. foil. foOApplication ationContext. fet

我还认为API是12.1.3中的SOAP,但我在12.2.1.4日志中看到了REST。这可能是问题所在,还是我读错了?

此外,这些类说它找不到我已经验证过的WebLogic部署区域中的类,所以我不确定为什么它找不到它们。

这里是代码抛出异常的地方,无论我传入什么bean名称,但它们都已定义。该类是实现org的FOOApplicationContext。springframework。上下文ApplicationContextAware并具有一个fetchBean函数,可执行以下操作:

public static Object fetchBean(final String beanName) throws FOOException {
    Object object = null;

    if (beanName == null) {
        throw new FOOException("beanName is null");
    }

    try {
         object = currentSpringContext().getBean(beanName);
    } catch (Exception e) {
        final String message = "error trying to getBean('"" + beanName + "\"): " + e.getMessage();
        throw new FOOException(message, e);
    }

    return object;
}

当在WebLogic 12.1.3下调用getBean()时,它可以工作。但是,当在WebLogic 12.4.1.2下调用完全相同的函数时,它抛出上面列出的AOP异常错误。没有代码更改等。不确定这是为什么。

我们还没有创建要部署到的实际服务器,但我已经在我的开发机器上本地安装了它。我已经按照本地安装12.1.3时的方式设置了数据库连接等。Spring框架有什么变化吗?该代码是8年前编写的,我集成了对它的支持,现在我必须在今年年底之前让我们转移到WebLogic 12.2.1.4,这是一个非常重要的应用程序的主要部分。WebLogic应用程序包含了所有的业务逻辑和数据库访问,因此如果没有它,前端应用程序将一事无成。

此外,我们注册的bean都不会在WebLogic 12.2.1.4下实例化,但它可以在12.1.3下工作。我甚至重新编译了EAR文件,它可以在12.1.3下工作,但不能在12.2.1.4下工作。

我发现了两个未注册为bean的对象之间可能存在的循环引用,但bean确实依赖于。所以这两个对象没有注册为bean。不知道为什么这样做,但无论如何,这似乎不会在12.1.3中产生问题。但是当尝试在FOOApplication ationContext对象中创建DefaultJBL bean时,其中一个对象(FOOException)出现在抛出的错误中。

我不确定还能提供什么。在互联网上搜索并没有找到解决我问题的方法。我发现了一些似乎可以解决的问题,但结果证明它们不适用。我似乎找不到其他人有这个问题,但谷歌和Duck Duck Go都找到了各种不适用于我的情况的“解决方案”。

谢谢

共有1个答案

海信鸥
2023-03-14

ClassNotFound异常,您可能需要更新与Spring Framework相关的依赖项

 类似资料:
  • 我刚刚升级了我的android studio,它破坏了我的颤振构建过程。我现在在尝试构建以前工作过的项目时遇到了这个错误。我的andriod studio设置在最后。非常感谢您的帮助。 失败:构建失败,有一个异常。 出错原因: 任务执行失败:应用程序:processDebugMainManifest 无法使字段私有化。字符串java。木卫一。文件路径可访问:模块java。base不会将java.i

  • 测试使用Jetty服务器周围的包装器作为连接到的主机。对于主机和客户端来说,truststore和keystore是相同的。出于某种原因,从2.5到2.6的更改导致服务器提前关闭。 我唯一要改变的是maven中的OkHttp版本从2.5到2.6。测试类在这里(实现在TestInvokeHttpCommon中):https://github.com/apache/nifi/blob/8c2323dc

  • 我正在将一组遗留应用程序升级到Spring Boot2.4.0,运行在OpenJDK8上,部署到Pivotal Cloud Foundry。 我将添加到我的和测试文件中: 仍然没有快乐--所有的测试都失败了。 我被我看到的其他链接弄糊涂了。这是的问题吗?我读到版本可能存在问题。我需要把它添加到我的应用程序吗?在升级之前,它从来不需要这种依赖关系:

  • 我正在从一个空的MVC构建一个OWIN登录,我刚刚开始添加这个部分,在创建一个要放入URL的身份声明之后,使用我的数据库登录用户。 这是我创建登录用户声明的代码 这是我的Show.cshtml代码 这是我的代码,我调用我的数据库,并为登录用户存储我的数据 我的登录(登录模型输入)完成并返回到Show.cshtml,然后在这里有一个异常@Html。AntiForgeryToken().我得到的例外是

  • null 04:52:42.738警告:没有为分析源文件提供依赖项的字节码,最终可能会得到不太精确的结果。可以使用sonar.java.Libraries属性提供字节码

  • 下面的代码过去是在JDK 1.7使用的JAXB实现下工作的,但现在在JDK 1.8下它被破坏了。在下面的代码中,您将发现关键的更改,它似乎在1.8中起作用。1.8下的“修复”并不是真正的修复,因为公开内部集合供外部世界直接修改是一种不好的做法。我想通过我的类来控制对内部列表的访问,我不想通过创建可观察的集合并聆听它们来使事情复杂化。这是不可接受的。 有没有办法让我的原始代码在JD 1.8的JAXB