无法 运行 远程服务器上的 Vaadin 应用程序

Not able to run a Vaadin application on remote server

我正在使用 Java 构建一个 Vaadin 应用程序。这是文件夹结构。

- com
-- my
--- WebTool
---- ToolUI.java
---- View_1.java
---- View_2.java

应用程序的入口点是 ToolUI.java 并且具有采用 VaadinRequest 作为参数。正是在这个文件中,我添加了视图 Views_1View_2 作为应用程序的视图,并在其中添加了导航.当我通过 Eclipse 运行 应用程序 运行 时,一切都很好 运行。

现在我有一个要求,我必须在远程服务器上部署这个应用程序。所以我创建了一个 war 的项目并通过名称部署在服务器上 MyWebTool.war.

现在,当我尝试 运行 使用命令

连接 war 时
java -jar MyWebTool.war

它给我错误:无法执行 war 没有主清单属性,在 MyWebTool.war

我不确定要添加什么主要 class 因为 init 方法被调用并设置了应用程序 运行ning。所以我在 MyWebToolUI.java 中放置了一个空白的主函数,并在 pom.xml 文件中添加了这个依赖项。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>com.my.WebTool.ToolUI</mainClass>
            </manifest>
        </archive>
      <failOnMissingWebXml>false</failOnMissingWebXml>
      <!-- Exclude an unnecessary file generated by the GWT compiler. -->
      <packagingExcludes>WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**</packagingExcludes>
    </configuration>
</plugin>

但现在当尝试 运行 应用程序时它说 无法找到或加载主程序 class com.my.WebTool.ToolUI

有人可以解释一下吗?我不知道我是否在这里遗漏了一些简单的东西,但在这一点上,我被困住了。非常感谢。

对于运行宁war打包的应用程序,您将需要一个servlet container。 servlet 容器提供了基于 运行 java 的 Web 应用程序所需的所有基本基础设施。

最常用的方法之一是 deploy the war file to a tomcat 安装。