一尘不染

Weblogic 10.3.5覆盖Spring版本

spring

我正在使用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版本,我该怎么做?


阅读 508

收藏
2020-04-15

共2个答案

一尘不染

选项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的任何版本。

2020-04-15
一尘不染

我有同样的问题。解决方案是在EAR项目的META-INF文件夹中创建weblogic-application.xml。这是代码。

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-application>
    <prefer-application-packages>
        <package-name>org.apache.*</package-name>
        <package-name>org.springframework.*</package-name>
    </prefer-application-packages>
</weblogic-application>

也许你的问题是你将weblogic.xml用于WAR项目中,而不是将weblogic-application.xml用于EAR项目中。

希望能帮助到你。

2020-04-15