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
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.
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.