[SPRING] Jersey 2 + Spring : @Autowired는 null입니다.
SPRINGJersey 2 + Spring : @Autowired는 null입니다.
이 기사의 도움으로 Spring과 Jersey 2를 사용하려고합니다. Jersey 2를 Spring IoC 컨테이너와 함께 사용하는 방법
그러나 autowired 빈은 애플리케이션이 클라이언트 요청 후에 그것을 호출하려고 할 때 null이다. applicationContext.xml에는 구성 요소 스캔 설정 만 있습니다.
In pom.xml:
<spring.version>4.1.0.RELEASE</spring.version>
<jersey.version>2.12</jersey.version>
@Component
@RequestScoped
@Path("/user")
public class UserREST {
@Autowired
private UserFacade userFacade;
@POST
@Path("/auth")
@Consumes(MediaType.APPLICATION_JSON)
@Produces({MediaType.APPLICATION_JSON})
public AuthResponse authorize(User user){
return userFacade.authorize(user); // Null is caught here
}
}
-
@Component
public class UserFacade {
public AuthResponse authorize(com.pushock.model.User user){
AuthResponse response = new AuthResponse();
response.setAuthorized(true);
return response;
}
}
내가 뭘 잘못하고 있죠?
UPD : 여기 내 pom.xml https://bitbucket.org/spukhov/memo-ws/src/00724e00e3aa786f62fd0e43fe0606de6ae569df/pom.xml?at=master입니다.
해결법
-
==============================
1.스프링 관리 빈은 JAX-RS 클래스에 직접 삽입 할 수 없으므로 Spring과 통합하기 위해 Jersey 확장을 사용해야한다.
스프링 관리 빈은 JAX-RS 클래스에 직접 삽입 할 수 없으므로 Spring과 통합하기 위해 Jersey 확장을 사용해야한다.
pom.xml에없는 maven 종속성이 있습니다.
<dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-spring3</artifactId> <version>2.12</version> </dependency>
Jersey Documentation : Chapter 22를 참조하십시오. Spring DI와 페이지 하단에는 Spring 통합 샘플 Github 프로젝트에 대한 링크가 있습니다.
프로젝트에서 보았던 또 다른 문제점은 스프링 컨텍스트를로드하고 구성하는 방법을 보여주지 않았다는 것입니다. web.xml에 구성해야합니다.
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param>
-
==============================
2.Spring 환경 설정을 위해 Java 기반 접근법을 사용하는 경우 다음 작업도 수행해야합니다.
Spring 환경 설정을 위해 Java 기반 접근법을 사용하는 경우 다음 작업도 수행해야합니다.
servletContext.setInitParameter("contextConfigLocation", "<NONE>");
WebApplicationInitializer 구현에서
from https://stackoverflow.com/questions/25899226/jersey-2-spring-autowired-is-null by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] AspectJ와의 Spring / @Transactional은 완전히 무시된다. (0) | 2019.01.22 |
---|---|
[SPRING] Spring MVC를 사용하여 <form : input type = "file"> 값 유지하기 (0) | 2019.01.22 |
[SPRING] ItemReader 및 ItemWriter를 사용하지 않고 Spring 배치 작업을 작성할 수 있습니까? (0) | 2019.01.22 |
[SPRING] ServletRequestBindingException에 대한 Spring3 @ExceptionHandler (0) | 2019.01.22 |
[SPRING] 키 'PRIMARY'에 대한 중복 항목 'string1-string2' (0) | 2019.01.22 |