2012-08-20 3 views
2

Я пытаюсь реализовать proyect с использованием Spring 3.1.2.RELEASE с Джерси 1.13 на сервере Tomcat 7. Моя проблема заключается в том, что когда я пытался авторизовать службу в реализацию остальных, сервисный bean-компонент обрабатывался null каждый раз.Jersey - Spring 3 autowiring (NoClassDefFoundError: EnvironmentAware)

я нашел предложение, чтобы установить это в web.xml

<servlet> 
    <servlet-name>jersey-serlvet</servlet-name> 
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>com.mac.rest</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>jersey-serlvet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

Теперь, я получаю эту ошибку

java.lang.NoClassDefFoundError: org/springframework/context/EnvironmentAware 

Я не знаю, что случилось, может быть, вы можете помочь мне понять это из

это мой web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     id="WebApp_ID" version="2.5"> 
    <display-name>localito</display-name> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <servlet> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.mac.rest</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
      <param-value>true</param-value> 
     </init-param> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

и это мой pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <project> 
     <modelVersion>4.0.0</modelVersion> 
     <groupId>localito</groupId> 
     <artifactId>localito</artifactId> 
     <packaging>war</packaging> 
     <version>0.0.1-SNAPSHOT</version> 
     <description></description> 
     <build> 
      <finalName>${project.build.finalName}</finalName> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-install-plugin</artifactId> 
        <version>2.3.1</version> 
        <executions> 
         <execution> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <phase>install</phase> 
          <configuration> 
           <file>${project.build.finalName}.${project.packaging}</file> 
           <generatePom>false</generatePom> 
           <pomFile>pom.xml</pomFile> 
           <version>${my.version}</version> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
     <repositories> 
      <repository> 
       <id>java.net</id> 
       <url>http://download.java.net/maven/2/</url> 
      </repository> 
      <repository> 
       <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url> 
       <id>eclipselink</id> 
       <layout>default</layout> 
       <name>Repository for library Library[eclipselink]</name> 
      </repository> 
      <repository> 
       <id>maven2-repository.java.net</id> 
       <name>Java.net Repository for Maven</name> 
       <url>http://download.java.net/maven/2/</url> 
       <layout>default</layout> 
      </repository> 
     </repositories> 

     <dependencies> 
      <dependency> 
       <groupId>javax.servlet</groupId> 
       <artifactId>servlet-api</artifactId> 
       <version>2.5</version> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-beans</artifactId> 
       <version>${org.springframework.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-jdbc</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-webmvc</artifactId> 
       <version>${org.springframework.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-orm</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.hibernate</groupId> 
       <artifactId>hibernate-entitymanager</artifactId> 
       <version>3.3.2.ga</version> 
       <exclusions> 
        <exclusion> 
         <groupId>cglib</groupId> 
         <artifactId>cglib</artifactId> 
        </exclusion> 
       </exclusions> 
      </dependency> 
      <!-- dependency> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-log4j12</artifactId> 
       <version>1.4.2</version> 
      </dependency --> 
      <dependency> 
       <groupId>taglibs</groupId> 
       <artifactId>standard</artifactId> 
       <version>1.1.2</version> 
      </dependency> 
      <dependency> 
       <groupId>javax.servlet</groupId> 
       <artifactId>jstl</artifactId> 
       <version>1.1.2</version> 
      </dependency> 
      <dependency> 
       <groupId>mysql</groupId> 
       <artifactId>mysql-connector-java</artifactId> 
       <version>5.1.10</version> 
      </dependency> 
      <dependency> 
       <groupId>commons-dbcp</groupId> 
       <artifactId>commons-dbcp</artifactId> 
       <version>20030825.184428</version> 
      </dependency> 
      <dependency> 
       <groupId>commons-pool</groupId> 
       <artifactId>commons-pool</artifactId> 
       <version>20030825.183949</version> 
      </dependency> 
      <dependency> 
       <groupId>org.eclipse.persistence</groupId> 
       <artifactId>eclipselink</artifactId> 
       <version>2.3.0</version> 
      </dependency> 
      <dependency> 
       <groupId>org.eclipse.persistence</groupId> 
       <artifactId>javax.persistence</artifactId> 
       <version>2.0.3</version> 
      </dependency> 
      <dependency> 
       <groupId>org.eclipse.persistence</groupId> 
       <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId> 
       <version>2.3.0</version> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>javax.annotation</groupId> 
       <artifactId>jsr250-api</artifactId> 
       <version>1.0</version> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>jaxen</groupId> 
       <artifactId>jaxen</artifactId> 
       <version>1.1.3</version> 
      </dependency> 

      <!-- Jersey dependency --> 
      <dependency> 
       <groupId>com.sun.jersey</groupId> 
       <artifactId>jersey-server</artifactId> 
       <version>1.13</version> 
      </dependency> 
      <dependency> 
       <groupId>com.sun.jersey</groupId> 
       <artifactId>jersey-bundle</artifactId> 
       <version>1.13</version> 
      </dependency> 
      <dependency> 
       <groupId>com.sun.jersey</groupId> 
       <artifactId>jersey-json</artifactId> 
       <version>1.13</version> 
      </dependency> 
      <dependency> 
       <groupId>com.sun.jersey.contribs</groupId> 
       <artifactId>jersey-multipart</artifactId> 
       <version>1.13</version> 
      </dependency> 
      <dependency> 
       <groupId>com.sun.jersey.contribs</groupId> 
       <artifactId>jersey-spring</artifactId> 
       <version>1.13</version> 
      </dependency> 
      <dependency> 
       <groupId>cglib</groupId> 
       <artifactId>cglib-nodep</artifactId> 
       <version>2.1_3</version> 
      </dependency> 
      <!-- Jersey dependency end --> 
     </dependencies> 
     <properties> 
      <org.springframework.version>3.1.2.RELEASE</org.springframework.version> 
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
      <project.build.finalName>localito</project.build.finalName> 
      <project.packaging>war</project.packaging> 
      <my.version>1.0</my.version> 
     </properties> 
     <name>localito</name> 
    </project> 

Я благодарю вашу помощь заранее.

ответ

1

Джерси-весна приносит более старую версию весны. Вы должны добавить исключение:

<dependency> 
     <groupId>com.sun.jersey.contribs</groupId> 
     <artifactId>jersey-spring</artifactId> 
     <version>1.13</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> 

mvn dependency-tree покажет эти зависимости