[SPRING] 저지 및 스프링 통합 - 실행시 빈 삽입이 null 임
SPRING저지 및 스프링 통합 - 실행시 빈 삽입이 null 임
Jersey를 사용하는 Rest 클래스에 서비스를 주입하려고합니다.
아무리 또는 내가이 클래스에 주입하려고해도 런타임에 null로 표시되는 것 같습니다. 로그 파일을 보면 웹 응용 프로그램이 초기화 될 때 setJsonTestService가 호출되고이 시점에서 null이 아닌 것으로 나타납니다. 그러나 나중에이 클래스에 PUT 요청으로 액세스하면 null입니다.
나는 완전히 당혹 스럽다.
클래스는 다음과 같습니다.
@Named
@Path("JsonTest")
public class JsonTest {
@Context
Request request;
@Context
UriInfo uriInfo;
protected final Logger log = Logger.getLogger(getClass());
private JsonTestService jsonTestService;
@Autowired
public void setJsonTestSerivce(JsonTestService jsonTestService) {
log.info("Setting JsonTestService.");
if (jsonTestService == null) {
log.info("JsonTestService is null at injection");
}
this.jsonTestService = jsonTestService;
}
@Inject
public ScrapIntermediate scrapIntermediate; // just a plain empty class with an is true method
@PUT
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public void putJson(@PathParam("id") String id) {
log.info("Putting some json at " + id);
if (scrapIntermediate == null) {
log.info("scrapIntermediate is null...");
}
if (jsonTestService != null) {
jsonTestService.sendUpdate();
} else {
log.info("jsonTestService is null...");
}
}
}
어떤 아이디어?
최신 정보:
web.xml (저지)
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>EDAS</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
해결법
-
==============================
1.시험
시험
<servlet-class> com.sun.jersey.spi.spring.container.servlet.SpringServlet </servlet-class>
contextConfigLocation
도 필요하지만, 가지고 있다고 가정합니다. 설정에 대한 자세한 내용은 여기를 참조하십시오. 매트 B는 당신의 객체를 인스턴스화하는 스프링을 제안했지만 Jersey는 스프링에 대해 아무것도 모르고 다시 인스턴스를 생성합니다. SpringServlet을 사용할 때 스프링 애플리케이션 컨텍스트를 찾아야한다.
즉, spring-mvc는 JAX-RS의 RESTful 서비스와 매우 유사한 RESTful 서비스를 지원한다. 당신도 그것을 시도 할 수 있습니다.
from https://stackoverflow.com/questions/6672701/jersey-and-spring-integration-bean-injections-are-null-at-runtime by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] JPA에서 사용자 정의 ID 생성 방법 (0) | 2019.03.31 |
---|---|
[SPRING] Spring Framework 필터, 빈이 주입되지 않음 (0) | 2019.03.31 |
[SPRING] java.lang.ClassNotFoundException : org.springframework.web.context.request.RequestContextListener (0) | 2019.03.31 |
[SPRING] SocialAuthenticationFilter와 ProviderSignInController를 함께 사용해야합니까? (0) | 2019.03.31 |
[SPRING] 스프링 부트 임베디드 Tomcat 성능 (0) | 2019.03.31 |