2015-01-22 3 views
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> 
+2

Удалить «ContextLoaderServlet», который предназначен для старых контейнеров сервлетов (<2.3), которые не имеют функции прослушивателя. –

+0

@Deinum, значит, весна 4 может использовать свой собственный контейнер? Если мне не нужно заменять другим классом сервлета? – sai

+1

Нет. «ContextLoaderServlet» и «ContextLoaderListener» выполняют ту же самую задачу, что и «ContextLoaderServlet» для очень старых контейнеров сервлетов. –

ответ

0

Благодаря deinum и мозг, как предложил я извлекал контекст загрузчика сервлет и есть два контекст приложения xmls используется там, где я не relalized Я заменил типы документов бездействующим xsd's. Исправление разрешено.

Смежные вопросы