构建可以由Maven Tomcat插件部署的war文件

ksn*_*tum 2 tomcat war vaadin maven

这在技术上不是一个编程问题,而是一个关于从Maven项目部署war文件时遇到的错误的问题.

我在构建war文件,运行Tomcat7并打开浏览器后得到的错误是:

HTTP Status 404 - /vaadin-test/

type Status report

message /vaadin-test/

description The requested resource (/vaadin-test/) is not available.
Run Code Online (Sandbox Code Playgroud)

我使用Vaadin作为我的网络应用平台.我有一个非常简单的项目,我正在尝试运行测试.我使用的是tomcat7-maven-pluginmaven-war-plugin我的POM文件.war插件配置看起来像这样(我认为我甚至不需要过滤):

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>

            <configuration>
                <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
                <warName>vaadin-test</warName>

                <webResources>
                    <resource>
                        <directory>src/main/webapp/</directory>
                        <filtering>true</filtering>

                        <includes>
                            <include>**/*.xml</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

web.xml看起来像这样:

<servlet>
    <servlet-name>myservlet</servlet-name>
    <servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>

    <init-param>
        <param-name>application</param-name>
        <param-value>com.catalystitservices.vaadin.TestApp</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>myservlet</servlet-name>
    <url-pattern>/test-app</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

无论我是否尝试mvn tomcat7:run将创建的war文件运行或部署到外部Tomcat服务器(通过管理器页面),我都会遇到同样的错误.这让我觉得我没有正确构建war文件.我找不到错误日志(但也许我错过了它们).

有任何想法吗?

ant*_*tix 5

如果你<finalName><build>块中没有指定,Maven将使用以下格式创建一个战争名称:

vaadin-test-1.0.war
Run Code Online (Sandbox Code Playgroud)

vaadin-test工件名称在哪里,1.0是版本字符串.

因此,你必须提到的网址/vaadin-test-1.0不是/vaadin-test

此外,您的vaadin servlet绑定到url/test-app,因此在添加finalName标记后,完整的URL应类似于: /vaadin-test/test-app

NB!请注意,1.0这只是一个例子,请咨询您自己pom.xml的真实价值