簡體   English   中英

部署Spring MVC Webapp

[英]Deploying Spring MVC webapp

我有Spring MVC應用程序,除了pom.xml(完全注釋驅動)之外,沒有xml。 我想打仗並將應用程序部署到tomcat服務器。 我包括了maven插件:

<build>
    <finalName>app</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        </plugins>
</build>

這是我的MvcInitializer類:

public class MvcInitializer extends
    AbstractAnnotationConfigDispatcherServletInitializer {

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

@Override
protected Class<?>[] getServletConfigClasses() {
    return null;
}

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

當我使用目標為“包”的maven進行構建時,出現以下錯誤:

Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

我必須怎么做才能獲得可以在tomcat服務器中運行的有效war文件?

順便說一句,我可以在IDE的Tomcat中運行我的應用程序,但是我想對其進行部署。

將此添加到您的pom.xml

<build>
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

更新 :最好將MvcConfig作為servlet configs一部分而不是root configs

public class MvcInitializer extends
    AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null;
    }

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM