2013-12-21 3 views
1

클라이언트에 대해 REST API를 제공하는 응용 프로그램을 개발 중입니다. 일부 종속성 주입에는 JAX-RS 구현 JerseySpring을 사용하기로 결정했습니다.Spring + JAX.RS - 컨텍스트가 두 번로드 됨

오늘은 내 응용 프로그램 컨텍스트 예를 들어, 두 번로드 할 것 같다, 내 로그에 발견 : 나는 비슷한 게시물을 통해보고

2013-12-21 22:18:55 INFO ContextLoader:272 - Root WebApplicationContext: initialization started 
2013-12-21 22:18:55 INFO ContextLoader:272 - Root WebApplicationContext: initialization started 

,하지만 내 web.xml 파일을 보는 것은, 내가 찾을 수 없습니다 범인 :

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 

<display-name>Spring MVC Application</display-name> 

<servlet> 
    <servlet-name>RestPowtorkiServlet</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>org.powtorki.spring.PowtorkiApplication</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>RestPowtorkiServlet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

<context-param> 
    <param-name>log4jConfigLocation</param-name> 
    <param-value>classpath:log4j.properties</param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 

<!-- 
    Apply Spring Security Filter to all REST Requests 
--> 
<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/rest/*</url-pattern> 
</filter-mapping> 

또한

내가 Jersey 저장소에서 예제 응용 프로그램을 실행 시도 (,334,) 같은 문제로 고통 받고있는 것 같습니다.

Spring의 버그는 Jersey과 통합 되었습니까? 그렇다면 어떻게 든 고칠 수있는 방법이 있습니까?

편집 : log4j 구성은 :

# Root logger option 
log4j.rootLogger=DEBUG, stdout 
log4j.category.org.springframework.data.document.mongodb=DEBUG,stdout 
log4j.logger.org.springframework.web.context.ContextLoader=DEBUG,stdout 

# Direct log messages to stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 
+0

을 넣어 false에의 가산 플래그를 설정할 수 있습니다. –

+0

원본 게시물 편집에 추가했습니다. – Andna

답변

3

가산로 알려진 log4j에 Appender 특성이있다.

로거 C의 로그 명령문 출력은 C 및 그 조상의 모든 애플릿 으로 이동합니다. 이것은 "appender additivity"라는 용어의 의미입니다. , P를 로거 C의 상위 말하면

그러나 가산 플래그를 거짓으로 세트를 보유하고 C의 출력 C와 그 조상 펜더의 개까지 및 P를 포함하지만 모든 펜더에 관한 것이다

P.

의 조상 따라서 org.springframework.web.context.ContextLoader에 로그온 한 사용자의 문은 부모 인 rootLogger로 이동합니다.

당신은 당신의 로거 구성을 게시하시기 바랍니다

log4j.additivity.org.springframework.web.context.ContextLoader=false 
+0

감사합니다. 지금 일하고있는 것 같습니다. – Andna

관련 문제