Можно ли использовать Spring-WS 1.5 с Spring 3? - PullRequest
8 голосов
/ 23 июля 2010

Spring-ws 1.5.9 зависит от Spring 2.5 (в зависимости от pom). Может ли он быть использован с Spring 3 без каких-либо проблем с загрузкой классов. Я знаю, что некоторые пакеты совпадают, могу ли я просто не включать эти банки Spring 3? Не могу найти ни одного официального слова по этому поводу.

Ответы [ 2 ]

7 голосов
/ 31 октября 2010

В дополнение к ответу Скаффмана, вот как использовать Spring-WS 1.5.9 с Spring 3 по Maven:

1) Сначала исключите зависимость OXM от Spring 3. Просто удалите следующую зависимость из вашего 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) Наконец, убедитесь, что вы включили необходимые модули Spring 3 (список выше) в качестве зависимостей в вашем POM.

Вот и все, теперь вы должны иметь возможность использовать Spring-WS 1.5.9 с Spring 3.x.

3 голосов
/ 23 июля 2010

Официально, нет, они не совместимы. Как вы сказали, между этими двумя - org.springframework.oxm, в частности, конфликты пакетов. Этот пакет был доставлен в Spring 3 из Spring-WS, и оба будут конфликтовать.

Предполагалось, что работа над Spring-WS 2.0 будет завершена сразу после выпуска Spring 3.0, но этого не произошло. Пока это не произойдет, Spring-WS останется несовместимым с текущей версией Spring Framework.

На практике я обнаружил, что если вы опустите JAR-файл org.springframework.oxm в дистрибутиве Spring 3, то они отлично работают вместе. Если вы используете Maven, я не уверен, что это вариант для вас.

...