当前位置: 首页 > 面试题库 >

Weblogic 10.3.5覆盖Spring版本

郑功
2023-03-14
问题内容

我正在使用Oracle的OEPE发行版(包括Weblogic服务器10.3.5)开发Web应用程序。WLS包含自己的Spring版本,该版本似乎是2.5.6.SEC01。但是,我们正在尝试使用3.1发行版的Spring和Spring Security功能。

Maven POM将Spring Version定义为属性3.1.1.RELEASE(该属性已插入各节中,即:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>

我在weblogic.xml中尝试了两种单独的方法来排除内置的Spring(一种在下面注释掉,但是请放心,我已经尝试过两种方法):

<wls:container-descriptor>
    <wls:prefer-application-packages>
        <wls:package-name>com.oracle.ojdbc16.*</wls:package-name>
        <wls:package-name>antlr.*</wls:package-name>
        <wls:package-name>javax.persistence.*</wls:package-name>
        <wls:package-name>org.apache.commons.*</wls:package-name>
        <wls:package-name>org.springframework.*</wls:package-name>
        <wls:package-name>org.hibernate.*</wls:package-name>
        <wls:package-name>org.apache.xerces.*</wls:package-name>
    </wls:prefer-application-packages>
    <!-- <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes> -->
</wls:container-descriptor>

使用我自己的Spring版本,我该怎么做?


问题答案:

选项1:将Spring 3.x应用程序部署到未安装JRF的域中的wls服务器。这对我行得通。

选项2:在weblogic.xml中使用preferred-web-inf-classs并进行战争部署。这对我来说适用于wls 10.3.6,JRF域,Spring 3.2.2。我无法使Preferred-Application-Package起作用,但是Preferred-web-inf-classs起作用了。

注意:在没有安装JRF的域中,我尝试了war / weblogic.xml / prefer-application-packages和ear / weblogic-application.xml / prefer-application-packages方法,但都没有效果。我有一个测试jsp,它输出org.springframework.core.SpringVersion.getVersion(),尽管我付出了很多努力,它仍然报告2.5.6.SEC01(这是oracle_common / modules文件夹中捆绑的Spring版本)。

但是,在非JRF域中部署相同的应用程序,并且org.springframework.core.SpringVersion.getVersion()将报告与应用程序捆绑在一起的spring的任何版本。



 类似资料:
  • 我正在使用Oracle的OEPE发行版开发一个Web应用程序,包括Weblogic服务器10.3.5。WLS包括它自己的Spring版本,似乎是2.5.6。SEC01。但是,我们正在尝试使用特定于3.1版本的Spring和Spring Security功能。 Maven POM将Spring版本定义为3.1.1.RELEASE属性(该属性插入到部分中,即: 我已经尝试了两种不同的方法来weblog

  • 我有多个spring项目,它们都具有相同的自定义父POM,它们都继承了它们的spring-boot版本(1.5.18.release)。只有一个子项目需要更新到版本2.1.4.release,但是当我导入spring-boot-dependencies时,子项目中的spring-boot dependencies仍然保持在版本1.5.18.release。 自定义父POM:

  • 我的意图是在spring boot应用程序中有两个概要文件—开发和生产概要文件。开发概要文件只是为了覆盖生产概要文件的一些变量(比如内存中的数据库,而不是云中的数据库)。由于我预计将来会对生产概要进行一些更改,所以在开发概要中复制变量似乎不是一个解决方案。 因此,在Spring参考中,我读到应该只从引用的配置文件中添加属性。 有时,将特定于概要文件的属性添加到活动概要文件中而不是替换它们是很有用的

  • 我试图获得基于gradle的android项目的覆盖面。 所以我为我的应用程序添加版本。gradle 和 内部调试。 这工作正常。我可以获取使用或的报告。 问题是调试版本通常被开发人员用来运行和测试应用程序。因此,在构建中启用代码覆盖可能会降低构建的速度,这种用法可能不需要。 所以我想我会添加新的配置 不幸的是,没有和不运行覆盖类型。 当我使用dex2jar反编译apk并使用jd-gui查看内部时

  • 对于Spring Boot2.1,默认情况下禁用bean重写,这是一件好事。 然而,我确实有一些测试,其中我使用mockito用模拟实例替换bean。在默认设置下,使用这种配置的测试将由于bean重写而失败。 我发现唯一有效的方法是通过应用程序属性启用bean重写: 但是,我真的希望确保测试配置的bean定义设置最小,这一点将由spring在禁用重写的情况下指出。 我正在重写的bean是 在导入到

  • 我的父模块中的Spring Boot版本是v2.1.17。发布 然后我在子模块中引入了spring boot starter安全性,指定的版本是2.4.4,它覆盖了父模块中的版本(v2.1.17版本)。 然后,我运行了命令,发现子模块中spring-boot-starter-security的版本确实是2.4.4,但spring-boot-starter-security中引用的artifactI