1
Я столкнулся с проблемой ContextLoader во время запуска моего server.Below это деталь журналаContextLoader Проблемы во время запуска сервера
java.lang.IllegalStateException:
Cannot initialize context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml!
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:174)
at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:81)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
Ниже веб-XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml /WEB- INF/presentationContext.xml /WEB-INF/securityContext.xml </param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>Spring Application Context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
Вот мой пОМ
<?xml version="1.0" encoding="UTF-8"?>
<project>
<pomVersion>3</pomVersion>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.8</version>
<url>http://logging.apache.org/log4j/</url>
<type>jar</type>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
<url>http://jakarta.apache.org/commons/logging/</url>
<type>jar</type>
</dependency>
<dependency>
<groupId>xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.2.1</version>
<url>http://x-stream.github.io/</url>
<type>jar</type>
</dependency>
<dependency>
<groupId>springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.1.RELEASE</version>
<url>http://www.springframework.org</url>
<type>jar</type>
</dependency>
<dependency>
<groupId>springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.1.RELEASE</version>
<url>http://www.springframework.org</url>
<type>jar</type>
</dependency>
<dependency>
<groupId>springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.1.1.RELEASE</version>
<url>http://www.springframework.org</url>
<type>jar</type>
</dependency>
<dependency>
<groupId>springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.1.1.RELEASE</version>
<url>http://www.springframework.org</url>
<type>jar</type>
</dependency>
<dependency>
<groupId>springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.1.RELEASE</version>
<url>http://www.springframework.org</url>
<type>jar</type>
</dependency>
<dependency>
<groupId>bea</groupId>
<artifactId>weblogic</artifactId>
<version>9.1</version>
<url>http://www.bea.com</url>
<type>jar</type>
</dependency>
</dependencies>
</project>
** Ниже приведен контекст приложения XML-заголовок
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="cdqiPerformanceMonitor" class="com.tms.cdqi.framework.aop.interceptor.CDQIPerformanceMonitorInterceptor" />
</beans>
Ниже обновление web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml /WEB- INF/presentationContext.xml /WEB-INF/securityContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>Spring Application Context</servlet-name>
<!-- <servlet-class>org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>-->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>Ajax Servlet</servlet-name>
<servlet-class>com.tms.cdqi.presentation.ajax.AjaxServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>LoadMasterPreference</servlet-name>
<servlet-class>
com.tms.cdqi.presentation.servlet.LoadMasterPrefCatchServlet
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<filter-mapping>
<filter-name>CDQIPerformanceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CDQIXScriptingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- CCATCS00014750E - - End -->
<filter-mapping>
<filter-name>CDQISecurityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>PresentationApplicationContextFilter
</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- <welcome-file-list>-->
<!-- <welcome-file>/index.faces</welcome-file>-->
<!-- </welcome-file-list>-->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Ajax Servlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoadMasterPreference</servlet-name>
<url-pattern>/presentation/masterCustomerPref</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>
<jsp-config>
<taglib>
<taglib-uri>http://theserverside.com/customfacescomponents
</taglib-uri>
<taglib-location>/WEB-INF/pagination.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://theserverside.com/securityfacescomponents
</taglib-uri>
<taglib-location>/WEB-INF/security.tld
</taglib-location>
</taglib>
<!-- <taglib>-->
<!--<taglib-uri>http://java.sun.com/jsp/jstl/core
</taglib-uri>-->
<!--<taglib-location>/WEB-INF/c.tld</taglib-location>-->
<!-- </taglib>-->
<!-- <taglib>-->
<!--<taglib-uri>http://java.sun.com/jsp/jstl/functions
</taglib-uri>-->
<!-- <taglib-location>/WEB-INF/fn.tld</taglib-location>-->
<!--
</taglib>-->
</jsp-config>
<session-config>
<session-timeout>
300
</session-timeout>
</session-config>
</web-app>
Удалить «ContextLoaderServlet», который предназначен для старых контейнеров сервлетов (<2.3), которые не имеют функции прослушивателя. –
@Deinum, значит, весна 4 может использовать свой собственный контейнер? Если мне не нужно заменять другим классом сервлета? – sai
Нет. «ContextLoaderServlet» и «ContextLoaderListener» выполняют ту же самую задачу, что и «ContextLoaderServlet» для очень старых контейнеров сервлетов. –