Weblogic 10.3.5覆盖Spring版本

Jas*_*son 7 spring weblogic

我正在使用Oracle的OEPE发行版开发一个Web应用程序,包括Weblogic服务器10.3.5.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>
Run Code Online (Sandbox Code Playgroud)

我在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>
Run Code Online (Sandbox Code Playgroud)

使用我自己的Spring版本,我需要做什么?

小智 6

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

<?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>
Run Code Online (Sandbox Code Playgroud)

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

希望能帮助到你.


Jaf*_*dog 4

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

选项2:在weblogic.xml中使用prefer-web-inf-classes并部署为war。这对我来说适用于 wls 10.3.6、JRF 域、Spring 3.2.2。我无法让prefer-application-packages 工作,但prefer-web-inf-classes 可以。

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

不过,在非 JRF 域中部署相同的应用程序,org.springframework.core.SpringVersion.getVersion() 将报告您与应用程序捆绑的任何 Spring 版本。