2012-08-08 2 views
1

HelloWorld 웹/스프링 응용 프로그램을 처음부터 만들고 있습니다. 나는 mvc 패턴을 사용하는 법을 배우기 위해 this tutorial을 따라 갔다. 그래서 결국 내가 콘솔에서이 오류를받은 응용 프로그램을 실행하는 모든 단계와 시작을 ​​완료 :Grave : 컨텍스트 초기화에 실패했습니다.

은 무덤 : 컨텍스트 초기화에 실패 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException : XML 문서의 라인 11 ServletContext resource [/WEB-INF/dispatcher-servlet.xml]이 잘못되었습니다. 중첩 예외는 입니다. org.xml.sax.SAXParseException; lineNumber : 11; columnNumber : 100; CVC-복잡한 type.2.4.c 주변 검색은

SO 질문 I는 다음과 같은 몇 가지 위협을 찾았지만 내 오류를 해결하지 않았습니다.

  • Spring Security beginner's question. Build failed
  • Cannot find the declaration of element 'beans' in internet offline mode
    • 그래서, 난 그 WEB-INF 폴더에서 디스패처-servlet.xml 파일이 될 수 추론. 사전에

      commons-logging-1.1.1.jar 
      
      org.springframework.aop-3.1.2.RELEASE.jar 
      org.springframework.asm-3.1.2.RELEASE.jar 
      org.springframework.aspects-3.1.2.RELEASE.jar 
      org.springframework.beans-3.1.2.RELEASE.jar 
      org.springframework.context-3.1.2.RELEASE.jar 
      org.springframework.context.support-3.1.2.RELEASE.jar 
      org.springframework.core-3.1.2.RELEASE.jar 
      org.springframework.expression-3.1.2.RELEASE.jar 
      org.springframework.instrument-3.1.2.RELEASE.jar 
      org.springframework.instrument.tomcat-3.1.2.RELEASE.jar 
      org.springframework.jdbc-3.1.2.RELEASE.jar 
      org.springframework.jms-3.1.2.RELEASE.jar 
      org.springframework.orm-3.1.2.RELEASE.jar 
      org.springframework.oxm-3.1.2.RELEASE.jar 
      org.springframework.spring-library-3.1.2.RELEASE.libd 
      org.springframework.test-3.1.2.RELEASE.jar 
      org.springframework.transaction-3.1.2.RELEASE.jar 
      org.springframework.web-3.1.2.RELEASE.jar 
      org.springframework.web.portlet-3.1.2.RELEASE.jar 
      org.springframework.web.servlet-3.1.2.RELEASE.jar 
      org.springframework.web.struts-3.1.2.RELEASE.jar 
      
      spring-webmvc-3.0.5.RELEASE.jar 
      

      감사

      편집 : 1 :

      후 @Biju Kunjummen의 변경이 내 포함 항아리는 마지막으로

      <?xml version="1.0" encoding="UTF-8"?> 
      <beans:beans xmlns="http://www.springframework.org/schema/mvc" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns:beans="http://www.springframework.org/schema/beans" 
          xmlns:context="http://www.springframework.org/schema/context" 
          xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> 
      
      
          <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
           <property name="prefix"> 
            <value>/WEB-INF/jsp/</value> 
           </property> 
      
           <property name="suffix"> 
            <value>.jsp</value> 
           </property> 
          </bean> 
      
          <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
           <property name="interceptors"> 
            <list> 
             <ref local="localeChangeInterceptor" /> 
            </list> 
           </property> 
      
           <property name="urlMap"> 
            <map> 
             <entry key="/hello.html"> 
              <ref bean="helloController" /> 
             </entry> 
            </map> 
           </property> 
      
          </bean> 
      
          <bean id="helloController" class="controllers.HelloController"> 
          </bean> 
      
          <bean id="localeChangeInterceptor" 
           class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
      
           <property name="paramName" value="hl" /> 
      
          </bean> 
      
          <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> 
          </bean> 
      
      </beans> 
      

      :처럼이 XML 보인다 , 이제 문제는 bean 선언에 comflic이 있다는 것입니다 :

      01 내가 컨트롤러를 확인하고 src/controllers 디렉토리에 잘 보이는 한 23,516,
      Grave: Context initialization failed 
      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'urlMapping' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Cannot resolve reference to bean 'helloController' while setting bean property 'urlMap' with key [TypedStringValue: value [/hello.html], target type [null]]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloController' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [controllers.HelloController]: Constructor threw exception; nested exception is java.lang.Error: Unresolved compilation problems: 
          The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files 
          Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor 
          String cannot be resolved to a type 
      

      는 :

      package controllers; 
      
      import java.io.IOException; 
      
      import javax.servlet.ServletException; 
      import javax.servlet.http.HttpServletRequest; 
      import javax.servlet.http.HttpServletResponse; 
      
      import org.springframework.web.servlet.ModelAndView; 
      import org.springframework.web.servlet.mvc.Controller; 
      
      public class HelloController implements Controller { 
      
          public ModelAndView handleRequest(HttpServletRequest request, 
             HttpServletResponse response) throws ServletException, IOException { 
      
             String Mess = "Hello World!"; 
      
             ModelAndView modelAndView = new ModelAndView("hello"); 
             modelAndView.addObject("message", Mess); 
      
             return modelAndView; 
             } 
      
      } 
      
    +0

    을 ? – soulcheck

    +0

    [Spring community] (http://www.springsource.org/download/community)에서 Spring Framework를 다운로드하면 내부로 들어 가지 않으므로 다른 링크로 다운로드하십시오 : [spring-webmvc-3.0.5 .RELEASE] (http://search.maven.org/remotecontent?filepath=org/springframework/spring-webmvc/3.0.5.RELEASE/spring-webmvc-3.0.5.RELEASE.jar) – manix

    +1

    여기 있습니다 : http : //search.maven.org/remotecontent? filepath = org/springframework/spring-webmvc/3.1.2.RELEASE/spring-webmvc-3.1.2.RELEASE.jar. – soulcheck

    답변

    2

    당신은 기본값으로 http://www.springframework.org/schema/mvc을 가지고 있지만, 여러분의 빈 정의는 문제가 될 것이는 http://www.springframework.org/schema/beans 네임 스페이스에 속한다.

    <?xml version="1.0" encoding="UTF-8"?> 
    <beans:beans xmlns="http://www.springframework.org/schema/mvc" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:beans="http://www.springframework.org/schema/beans" 
    ..."> 
    
    
    <beans:bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <beans:property name="prefix"> 
         <beans:value>/WEB-INF/jsp/</beans:value> 
        </beans:property> 
    

    .....

    또는 콩이 기본이 방법 네임 스페이스 만들기 : 당신은 왜 스프링 항아리의 나머지 부분으로 스프링 webmvc의 동일한 버전을 사용하지 않는

    <?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns:mvc="http://www.springframework.org/schema/mvc" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://www.springframework.org/schema/beans" 
        xmlns:context="http://www.springframework.org/schema/context" 
        xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> 
    
    
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
         <property name="prefix"> 
          <value>/WEB-INF/jsp/</value> 
         </property> 
    
         <property name="suffix"> 
          <value>.jsp</value> 
         </property> 
        </bean> 
    
    +0

    이제 오류가 다르게 보입니다. 결과를 자세히 설명하기 위해 게시물을 업데이트했지만 오류는'dispatcher-servlet.xml' 파일에 있습니다. – manix

    +0

    오, 유용한 링크를 발견했습니다. http : //forum.springsource.org/showthread.php? 69823-can-t-load-a-bean-from-applicationContext. 이제 오류가 내 컨트롤러에 배치됩니다. 나는 그 대답을 받아 들일 시간이라고 생각한다. 나머지 사람들도 많이 감사합니다. – manix

    관련 문제