我正在开发为客户端提供REST API的应用程序,为此我决定使用JAX-RS
实现Jersey
和Spring
进行一些依赖注入。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
我通过similiar的职位看,但看到我的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
库运行示例应用程序(https://github.com/jersey/jersey/tree/2.4.1/examples/helloworld-spring-webapp),它似乎正在遭受同样的问题。
它是否与Jersey
集成Spring
?如果是的话有什么方法可以解决它?
编辑: 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
请发表您的记录器配置其相加标志设置为
false
。 –在原始文章编辑中添加了它。 – Andna