2016-01-17 221 views
1

我已經得到Spring MVC應用程序,除了pom.xml(全註解驅動)之外,沒有任何xml。我想構建戰爭並將應用程序部署到Tomcat服務器。我已經包含Maven插件:部署Spring MVC webapp

<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上運行我的應用程序,但我想部署它。

+1

如果你有一個新的應用程序,我強烈推薦如果可行的話,使用帶有Spring Boot的嵌入式容器。 – chrylis

+0

你不需要web.xml –

回答

0

添加到您的pom.xml

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

更新:最好是添加MvcConfig作爲其一部分的servlet configsroot 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[] { "/" }; 
    } 
} 
+0

它成功生成war文件,但是在部署到tomcat視圖後沒有顯示。控制器運行正常,但視圖不需要 –

+0

檢查您的視圖解析器。也許這是一個配置問題 –

+0

也許更新有幫助 –