2010-07-22 7 views
8

Spring-ws 1.5.9 dipende da Spring 2.5 (basato sul pom). Può essere utilizzato con Spring 3 senza incorrere in problemi di caricamento di classe. So che alcuni dei pacchetti corrispondono tra i due, posso semplicemente non includere quei vasi Spring 3? Non riesco a trovare alcuna parola ufficiale su questo.È possibile utilizzare Spring-WS 1.5 con Spring 3?

risposta

3

Ufficialmente, no, non sono compatibili. Come hai detto tu, ci sono conflitti di pacchetti tra i due - in particolare org.springframework.oxm. Questo pacchetto è stato portato nella primavera 3 da Spring-WS, e i due si scontreranno.

Il lavoro doveva essere completato su Spring-WS 2.0 immediatamente dopo il rilascio di Spring 3.0, ma ciò non è accaduto. Fino a quel momento, Spring-WS rimane incompatibile con l'attuale versione di Spring Framework.

In pratica, ho scoperto che se si omette il JAR org.springframework.oxm dalla distro di Spring 3, i due funzionano bene insieme. Se stai usando Maven, però, non sono sicuro che questa sia un'opzione per te.

7

Oltre alla risposta di skaffman, ecco come utilizzare Primavera-WS 1.5.9 con Spring 3 attraverso Maven:

1) In primo luogo esclude la dipendenza OXM della Primavera 3. Basta togliere il seguente dipendenza dal POM.

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

Se stai usando un altro quadro che ha una dipendenza transitiva su Spring 3 (come quella di Apache Camel cammello primavera modulo) usa:

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

2) rimuovere la dipendenza transitiva che la primavera -WS 1.5.9 ha su 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) Infine assicuratevi di includere le necessarie moduli Primavera 3 (l'elenco di cui sopra) come dipendono le imprese nel tuo POM.

Ecco, ora dovresti essere in grado di utilizzare Spring-WS 1.5.9 con Spring 3.x.