2012-05-16 2 views
2

Я пытаюсь использовать Джерси с весной. Но для моей жизни я не могу понять, почему мои пружинные зависимости не вводятся в мой класс отдыха.@Autowired не работает при использовании Джерси с весной

Каждый раз, когда я пытаюсь вызвать автономную зависимость, я получаю NULL. Может ли кто-нибудь предположить, почему моя зависимость не вводится?

Мой отдых класса выглядит следующим образом:

com.myapp.rest 

@Component 
@Scope("request") 
@Path("/home") 
public class ChartResource { 

@Autowired 
ChartService chartService; 

@GET 
@Path("/chart") 
@Produces(APPLICATION_JSON) 
public Bean getChart() { 
     return chartService.retrieveChart(); 


} 

Мой файл web.xml выглядит следующим образом

<servlet> 
    <servlet-name>myapp</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>org.codehaus.jackson.jaxrs;com.myapp.rest</param-value> 
    </init-param>  
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>org.codehaus.jackson.jaxrs</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

Мой applicationContext.xml является стандартным, и определяет базовый пакет для компонента сканирования:

<beans:beans xmlns="http://www.springframework.org/schema/mvc" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:beans="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

<annotation-driven /> 
<resources mapping="/resources/**" location="/resources/" /> 


<context:component-scan base-package="com.myapp" /> 

</beans:beans> 
+0

Пожалуйста, разместите свой файл приложенияContext.xml. Обычно это «стандартные» вещи, которые ломают вещи. Также, пожалуйста, разместите пакет класса отдыха –

+0

Привет Крис, я добавил полный applicationContext и пакет этого класса. – seedhead

ответ

1

Ok - глупый вопрос. Мой applicationContext не загружался, поэтому он не собирал пакет, который я определил для сканирования компонентов!

+0

Вы должны отметить это как правильный ответ (щелкнув по пустому флажку в стороне от ответа), если это действительно проблема. Это помогает другим людям искать такую ​​же проблему, позволяя им знать, что да, это действительно было исправление. –

2

Попробуйте добавить

<context:annotation-config /> 

Я не уверен, что вам нужно, чтобы получить аннотации-Джерси, чтобы работать, но @Autowired является Spring аннотации так что вам нужно использовать версию весной <annotation-config> для того, чтобы получить, чтобы работать должным образом.

+0

Спасибо Крису. Как бы то ни было, я был глуп, и мой applicationContext.xml не ссылался должным образом в моем web.xml. Исправлено исправление. – seedhead

Смежные вопросы