Spring 3, Джерси (JSR-311) и зависимости Знатока

Я в настоящее время изо всех сил пытаюсь интегрировать Сервис REST на основе Джерси и Spring. Я использую Spring и пружинные свитером 1.2 С 3.0.2 ВЫПУСКАМИ.

Но пружина свитера добавляет зависимость к Spring 2.5.6 к моему проекту, который из причины конфликтует с С 3.0.2 ВЫПУСКАМИ, чтобы дать мне thefollwing ошибку:

11:58:25,409 ERROR org.springframework.web.context.ContextLoader:215 - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [cloverjazz-web-context.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getLocalName(Lorg/w3c/dom/Node;)Ljava/lang/String;
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
        at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
        at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)

Существует ли способ обойти эту проблему? Кто-либо знает?

Спасибо!

10
задан Pascal Thivent 26 May 2010 в 13:56
поделиться

3 ответа

Собственный ответ: Я просто исключил зависимости в pom.xml следующим образом. кажется, что нет никаких несовместимостей и все работает нормально до сих пор:

 <dependency>
    <groupId>com.sun.jersey.contribs</groupId>
    <artifactId>jersey-spring</artifactId>
    <version>1.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </exclusion>
    </exclusions>
</dependency>
18
ответ дан 3 December 2019 в 14:43
поделиться

Насколько я знаю, они еще официально не изменили модуль jersey-spring maven для поддержки Spring 3.0 вместо 2.5. Я также нашел следующее сообщение на nabble forum!

3
ответ дан 3 December 2019 в 14:43
поделиться

Я не знаю, совместим ли jersey-spring с Spring 3.0, но способ контролировать версии артефактов, используемых в переходных зависимостях, заключается в использовании dependencyManagement:

<project>
  ...
  <repositories>
    <repository>
      <id>download-java-net</id>
      <url>http://download.java.net/maven/2/</url>
    </repository>
  </repositories>
  <properties>
    <org.springframework.version>3.0.2.RELEASE</org.springframework.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.sun.jersey.contribs</groupId>
      <artifactId>jersey-spring</artifactId>
      <version>1.2</version>
      <exclusions>
        <exclusion>
          <groupId>org.springframework</groupId>
          <artifactId>spring</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    ...
  </dependencies>
</project>

Обратите внимание, что по-прежнему требуется исключить org.springframework:spring:jar:2.5.6, поскольку эта зависимость не существует в более поздних версиях.

Ниже дерево зависимостей, которое вы получите при такой установке:

$ mvn dependency:tree 
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'dependency'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Q2911869
[INFO]    task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.stackoverflow:Q2911869:jar:1.0-SNAPSHOT
[INFO] +- com.sun.jersey.contribs:jersey-spring:jar:1.2:compile
[INFO] |  +- com.sun.jersey:jersey-server:jar:1.2:compile
[INFO] |  |  +- com.sun.jersey:jersey-core:jar:1.2:compile
[INFO] |  |  |  \- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] |  |  \- asm:asm:jar:3.1:compile
[INFO] |  +- org.springframework:spring-core:jar:3.0.2.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-asm:jar:3.0.2.RELEASE:compile
[INFO] |  |  \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] |  +- org.springframework:spring-beans:jar:3.0.2.RELEASE:compile
[INFO] |  +- org.springframework:spring-context:jar:3.0.2.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-aop:jar:3.0.2.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-expression:jar:3.0.2.RELEASE:compile
[INFO] |  \- org.springframework:spring-web:jar:3.0.2.RELEASE:compile
[INFO] |     \- aopalliance:aopalliance:jar:1.0:compile
[INFO] \- junit:junit:jar:3.8.1:test
...

Reference

11
ответ дан 3 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: