8

Spring-ws 1.5.9 依赖于 Spring 2.5(基于 pom)。它可以与 Spring 3 一起使用而不会遇到任何类加载问题。我知道两者之间的一些包匹配,我可以不包括那些 Spring 3 罐子吗?我似乎找不到任何官方的说法。

4

2 回答 2

7

除了 skaffman 的回答,这里是如何通过 Maven 将 Spring-WS 1.5.9 与 Spring 3 一起使用:

1)首先排除Spring 3的OXM依赖。只需从你的POM中删除以下依赖即可。

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-oxm</artifactId>
</dependency>

如果您正在使用另一个对 Spring 3 具有传递依赖的框架(如 Apache Camel 的camel-spring模块),请使用:

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<exclusions>
    <exclusion>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
    </exclusion>
</exclusions>
</dependency>

2) 移除 Spring-WS 1.5.9 对 Spring 2.5.6 的传递依赖:

<dependency>
    <groupId>org.springframework.ws</groupId>
    <artifactId>spring-ws-core</artifactId>
    <version>1.5.9</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-web</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.ws</groupId>
    <artifactId>spring-ws-support</artifactId>
    <version>1.5.9</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-jms</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3) 最后确保在 POM 中包含必要的 Spring 3 模块(上面的列表)作为依赖项。

就是这样,您现在应该能够将 Spring-WS 1.5.9 与 Spring 3.x 一起使用。

于 2010-10-31T15:33:57.023 回答
3

正式地说,不,它们不兼容。就像你说的那样,两者之间存在包冲突 -org.springframework.oxm特别是。这个包是从 Spring-WS 引入 Spring 3 的,两者会发生冲突。

在 Spring 3.0 发布后,本应立即在 Spring-WS 2.0 上完成工作,但这并没有发生。在此之前,Spring-WS 仍然与 Spring Framework 的当前版本不兼容。

在实践中,我发现如果您org.springframework.oxm从 Spring 3 发行版中省略 JAR,两者可以很好地协同工作。但是,如果您使用的是 maven,我不确定这是否适合您。

于 2010-07-22T20:54:28.760 回答