복붙노트

[SPRING] 스프링 3 MVC와 아파치 타일 2 통합 오류

SPRING

스프링 3 MVC와 아파치 타일 2 통합 오류

나는 스프링 (3.0.4 및 3.0.5) MVC를 Apache Tiles (2.1.2,2.1.4 및 2.2.2)와 통합하지 않으려 고 노력했다. 모든 경우에 다음 오류가 발생합니다.

java.lang.NoClassDefFoundError : org / apache / tiles / startup / BasicTilesInitializer

Tiles 문서에 따르면 BasicTilesInitializer는 더 이상 사용되지 않습니다. 나는 Spring의 TilesConfigurer의 최신 버전이 올바른 클래스를 참조 할 것이라고 생각했지만, 그것은 여전히 ​​똑같은 오류를 낳는다.

내 봄 mvc 응용 프로그램에서 타일을 설치하려면 다음 구성을 사용하고 있습니다.

<beans:bean 
    id="tilesConfigurer" 
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <beans:property name="definitions">
        <beans:list>
            <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>
        </beans:list>
    </beans:property>
</beans:bean>

<beans:bean 
    class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">      
    <beans:property 
        name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>                
</beans:bean>

이상적으로, 저는 Spring 3.0.5가 Tiles 2.2.2와 함께 작동하도록하고 싶습니다. 이 게시물의 최신 버전입니다.

해결법

  1. ==============================

    1.org.apache.tiles.startup.BasicTilesInitializer는 tiles-core (2.2.1) .jar 클래스입니다. 타일 ​​코어 병을 배치했는지 확인하십시오.

    org.apache.tiles.startup.BasicTilesInitializer는 tiles-core (2.2.1) .jar 클래스입니다. 타일 ​​코어 병을 배치했는지 확인하십시오.

  2. ==============================

    2.타일 ​​3의 경우, org.springframework.web.servlet.view.tiles3.TilesConfigurer 클래스를 사용하십시오. 스프링 webmvc에서 확인하십시오.

    타일 ​​3의 경우, org.springframework.web.servlet.view.tiles3.TilesConfigurer 클래스를 사용하십시오. 스프링 webmvc에서 확인하십시오.

  3. ==============================

    3.maven을 사용한다면 문제를 해결하기 위해이 의존성을 추가 할 수 있습니다 :

    maven을 사용한다면 문제를 해결하기 위해이 의존성을 추가 할 수 있습니다 :

    <dependency>
         <groupId>org.apache.tiles</groupId>
         <artifactId>tiles-servlet</artifactId>
         <version>2.2.2</version>
    </dependency>  
    
  4. ==============================

    4.나는 부실 한 실을 되살리기 위해 사과하지 않을 것이다.

    나는 부실 한 실을 되살리기 위해 사과하지 않을 것이다.

    Eclipse Helios에 내장 된 Spring MVC 프로젝트가있다. 나는 며칠 동안 헬리오스를 폐쇄했다가 오늘 다시 열었다. 내 응용 프로그램을 실행할 때 위와 같은 예외가 발생했습니다. java.lang.NoClassDefFoundError : org / apache / tiles / startup / BasicTilesInitializer.

    내 솔루션은 통합 Tomcat 서버의 deploy 디렉토리를 정리 한 다음 응용 프로그램을 다시 배포하는 것이 었습니다. 처음으로 배포를 다시 시작했을 때, 앱의 lib 디렉토리에 두 개의 항아리 만있었습니다. 그래서 다시 청소하고 재배포 한 다음, 필요한 모든 항아리를 얻었고 이제는 내 응용 프로그램이 다시 실행됩니다. 그림을 이동.

  5. ==============================

    5.STS를 사용하고 스프링 템플릿 프로젝트 (예 : MVC 프로젝트)를 사용하여 프로젝트를 만든 경우 lib 디렉토리에 아무 것도 추가하지 않습니다. 대신 pom.xml maven 설정 파일을 수정하십시오.

    STS를 사용하고 스프링 템플릿 프로젝트 (예 : MVC 프로젝트)를 사용하여 프로젝트를 만든 경우 lib 디렉토리에 아무 것도 추가하지 않습니다. 대신 pom.xml maven 설정 파일을 수정하십시오.

  6. ==============================

    6.내 POM에서 컴파일 시간에 제공 될 의존성을 추가 한 후에 만이 문제를 해결할 수있었습니다.

    내 POM에서 컴파일 시간에 제공 될 의존성을 추가 한 후에 만이 문제를 해결할 수있었습니다.

    <scope>compile</scope>
    
  7. ==============================

    7.타일 ​​2.2.2 버전을 사용하여 동일한 문제가 발생했습니다. 나는 버전 2.2.1로 전환했고 작동하기 시작했다. 내 의존성은 다음과 같습니다.

    타일 ​​2.2.2 버전을 사용하여 동일한 문제가 발생했습니다. 나는 버전 2.2.1로 전환했고 작동하기 시작했다. 내 의존성은 다음과 같습니다.

    <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-core</artifactId>
            <version>2.2.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-api</artifactId>
            <version>2.2.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-servlet</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-template</artifactId>
            <version>2.2.1</version>
        </dependency>
    
  8. ==============================

    8.다음 jar가 응용 프로그램 클래스 경로에 있는지 확인하십시오.

    다음 jar가 응용 프로그램 클래스 경로에 있는지 확인하십시오.

    타일 ​​jar의 버전은 Spring MVC의 버전에 달려있다. 예 : Spring MVC 3.2.3 (org.springframework.web.servlet.view.tiles3.TilesConfigurer)이 사용되면 타일 3 개가 필요합니다.

  9. ==============================

    9.타일 ​​3의 경우,

    타일 ​​3의 경우,

  10. from https://stackoverflow.com/questions/5003995/spring-3-mvc-and-apache-tiles-2-integration-error by cc-by-sa and MIT license