Spring-WS 1.5可以和Spring 3一起使用吗?

smp*_*p7d 8 spring web-services spring-ws

Spring-ws 1.5.9取决于Spring 2.5(基于pom).是否可以与Spring 3一起使用而不会遇到任何类加载问题.我知道有些软件包在两者之间匹配,我可以不包括那些Spring 3罐子吗?我似乎无法找到任何官方消息.

Ric*_*rij 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>
Run Code Online (Sandbox Code Playgroud)

如果您正在使用另一个对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>
Run Code Online (Sandbox Code Playgroud)

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

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

这就是你现在应该能够在Spring 3.x中使用Spring-WS 1.5.9.


ska*_*man 3

官方说法是,不,它们不兼容。正如您所说,两者之间存在包冲突 -org.springframework.oxm特别是。这个包是从 Spring-WS 引入到 Spring 3 中的,两者会发生冲突。

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

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