복붙노트

[SPRING] Spring Java Config : web.xml없이 Tomcat 배포

SPRING

Spring Java Config : web.xml없이 Tomcat 배포

나는 XML없이 java로 구성된 Spring MVC 애플리케이션을 만들었다. 문제없이 랩톱에 응용 프로그램을 배포하고 시작할 수 있습니다. 하지만 내 testserver (바람둥이 7)에 내 응용 프로그램을 배포하려고하면 다음 메시지가 나타납니다.

HTTP Status 404 - The requested resource (/[application context]/) is not available.

Eclipse Maven 플러그인을 사용하여 애플리케이션을 빌드한다. web.xml없이 애플리케이션을 배포 할 수 있습니까? 그렇지 않다면 정말 필요한 기본 web.xml은 무엇입니까?

Maven WAR 플러그인 :

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>${maven.war.plugin.version}</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>

WebAppInitializer :

@Order(value = 1)
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        super.onStartup(servletContext);
    }

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] { HibernateConfig.class, SecurityConfig.class, HibernateDaoConfig.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] { WebAppConfig.class };
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }

    @Override
    protected Filter[] getServletFilters() {
        return new Filter[]{};
    }
}

업데이트 : catalina.out

Feb 3, 2014 4:18:32 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/[appname]] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
Feb 3, 2014 4:18:33 PM org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context [/[appname]]
Feb 3, 2014 4:18:45 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive [appname].war

해결법

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

    1.그래도 해결되지 않으면 서블릿 버전 때문일 수 있습니다. Servlet 3.x API는 web.xml 파일을 WEB-INF 폴더에 넣는 대신 Java 클래스를 작성하여 Java 웹 응용 프로그램을 구성 할 수 있어야합니다.

    그래도 해결되지 않으면 서블릿 버전 때문일 수 있습니다. Servlet 3.x API는 web.xml 파일을 WEB-INF 폴더에 넣는 대신 Java 클래스를 작성하여 Java 웹 응용 프로그램을 구성 할 수 있어야합니다.

    완전한 예를 보시려면 여기를보십시오.

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

    2.최신 Tomcat 버전으로 업그레이드하고 문제가 없는지 확인하십시오. 구형 Tocmat 서버에서 새로운 스프링 기능 (예 : java config 등)을 사용하는 데는 많은 문제가 있습니다. 예를 들어, http://docs.spring.io/autorepo/docs/spring-framework/3.1.x/javadoc-api/org/springframework/web/WebApplicationInitializer.html을 참조하십시오.

    최신 Tomcat 버전으로 업그레이드하고 문제가 없는지 확인하십시오. 구형 Tocmat 서버에서 새로운 스프링 기능 (예 : java config 등)을 사용하는 데는 많은 문제가 있습니다. 예를 들어, http://docs.spring.io/autorepo/docs/spring-framework/3.1.x/javadoc-api/org/springframework/web/WebApplicationInitializer.html을 참조하십시오.

  3. from https://stackoverflow.com/questions/21529577/spring-java-config-tomcat-deploy-without-web-xml by cc-by-sa and MIT license