【问题标题】:Spring-Core-WS isn't compatible with Spring 4.3.0 is it?Spring-Core-WS 与 Spring 4.3.0 不兼容是吗?
【发布时间】:2016-08-01 16:14:50
【问题描述】:

我总是尝试在我的 Spring 项目中使用最新的 jars/apis。我们有一个 Spring 4.2.4.RELEASE,然后我升级到 4.3.0。一切构建和编译都很好......但是,当我尝试运行我的单元测试时,我收到了一条错误消息。 我确实将其追溯到 Spring-WS-Core 和 Spring-WS-Core-Test 2.3.0 引入: Spring-core、web、webmvc、bean 4.0.9。

有没有其他人见过这个?我必须回到 Spring 4.2 吗?

谢谢!

【问题讨论】:

  • 你能发布你的错误信息吗?
  • 有多个问题,但都源于单元测试。我可以将我的应用程序构建/编译为 JAR,但是当我运行单元测试时,应用程序上下文 xml 文件拒绝正确加载。 org.springframework.beans 中的第一个问题是未找到 EventListenerFactory。通过查看这个,我知道这是在 Spring 4.1 中实现的,所以如果加载了 spring-beans 4.0.9,那么就不会正确找到该类。一旦我开始向 spring-ws-core 和 spring-ws-test 添加排除项,错误就开始消失。

标签: java spring-mvc spring-ws


【解决方案1】:

我将我的应用程序降级为 4.2.7.RELEASE,这是 Spring 4.3.0 之前的最新版本,但这并没有帮助。最终,我不得不按如下方式更新我的 maven 依赖项:

    <!-- Spring SOAP Client Dependencies -->
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
        <version>${spring.ws.core.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- Spring SOAP Client TEST Dependencies -->
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-test</artifactId>
        <version>${spring.ws.core.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

为什么 Spring Web 服务(用于 SOAP Web 服务)仍然使用 Spring 4.0.9 并且尚未更新为使用 Spring 4.2.x 或 4.3.0,这超出了我的理解。这似乎是一个疏忽。

这个问题的症状是我在各种 spring.framework 包中遇到 ClassDefNotFound 错误。我想我已经解决了这个问题。

【讨论】:

    猜你喜欢
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多