Maven 2 如何运行最基本的Vaadin应用程序

Maven 2 如何运行最基本的Vaadin应用程序,maven-2,vaadin7,intellij-14,Maven 2,Vaadin7,Intellij 14,我一直在尝试创建一个开箱即用的Vaadin应用程序,但迄今为止没有成功 使用IntelliJ IDEA 14,添加了正确的Vaadin maven原型并创建了应用程序。 最后我得到了三个项目文件夹(production、ui和widgetset),根据教程,我只希望在src下有几个文件。无论如何 所以现在当我尝试在Tomcat下部署时,我得到了臭名昭著的 请求的资源 [/VAADIN/widgetsets/com.VAADIN.DefaultWidgetSet/com.VAADIN.Defaul

我一直在尝试创建一个开箱即用的Vaadin应用程序,但迄今为止没有成功

使用IntelliJ IDEA 14,添加了正确的Vaadin maven原型并创建了应用程序。
最后我得到了三个项目文件夹(production、ui和widgetset),根据教程,我只希望在
src
下有几个文件。无论如何

所以现在当我尝试在Tomcat下部署时,我得到了臭名昭著的

请求的资源 [/VAADIN/widgetsets/com.VAADIN.DefaultWidgetSet/com.VAADIN.DefaultWidgetSet.nocache.js] 从文件系统或通过类加载器找不到

错误。关于如何更改web.xml文件以解决此问题的文章已经足够多了。但是,我没有可更改的web.xml文件

我也不需要添加任何客户端js,所以我真的不需要这些东西,我只需要服务器端的Vaadin

我能否摆脱整个WidgetSet依赖性,从而也摆脱这个错误,只运行最基本的服务器端Vaadin应用程序,而不需要所有花哨的东西

我已经试着注释了所有对客户机编译器、widgetset和其他所有内容的引用,我对Java的一知半解让我在这个过程中失去了很多天


一些天才的洞察力会很棒。提前谢谢。

所以我让你大致了解瓦丁的工作原理。这里有一些背景信息,只是为了澄清一些事情,也许还可以将相关信息提供给其他感兴趣的人

GWT的想法是用Java编写一个应用程序,并通过GWT编译器运行它。可以直接在浏览器中运行的javascript。编译器本身就是GWT的主要部分。就小部件或组件而言,现成功能的选项非常少。这更像是一种“自己动手”的心态,让GWT用户或其他框架制造商填补小部件/图形的空白

Vaadin使用GWT,但方式与大多数基于GWT构建的框架略有不同。正如其他GWT扩展框架一样,Vaadin包含一组小部件,使您能够构建应用程序的大部分部分,而无需修改小部件。Vaadin所做的不同之处在于,它预编译小部件,并在其上为您提供一个通信管理器,允许您从服务器引导小部件。这里的关键区别在于,当在几乎所有其他GWT框架中,您必须在每次UI更改后运行GWT编译器时,在Vaadin中,您不必运行GWT编译器,因为服务器使用JSON消息控制布局和小部件。在Vaadin中,您在更改小部件的行为时进行编译,而不是在使用它时

因为Vaadin不需要您一直“GWT编译”应用程序,所以它可以为您提供一个预编译的widgetset,以满足您的基本需求。这称为DefaultWidgetSet。只要不进行客户端更改或不使用根目录中的任何加载项,就足够了

然后是实际问题。你正在使用的原型一周前就出来了。我不知道你指的是哪一个教程,但我敢打赌它仍然是指旧的原型,应该更新。通常,您应该能够通过以下步骤使其运行应用程序:

  • 创建具有原型的项目
  • 在根文件夹中运行
    mvn安装
  • 运行
    mvnjetty:在ui文件夹中运行
    (或者通过IDE将ui部署到另一个servlet容器中,如tomcat)
  • 因为您收到了发布的错误消息,这表明应用程序实际上正在尝试使用预编译版本,这很好,但由于某些原因,它找不到它。它应该来自widgetset模块,来自其中的vaadin客户端编译依赖项:

    <dependency>
      <groupId>com.vaadin</groupId>
      <artifactId>vaadin-client-compiled</artifactId>
      <version>${vaadin.version}</version>  
    </dependency>
    
    或者,在第一步之后,您可以将其导入IDEA并从那里运行它。如果要使用自己的包名,请另外重命名包(通过重命名src中的文件夹)


    对不起,我有点忘乎所以,漫无目的地讲下去了。如果我遗漏了什么,请提出所有问题。

    非常感谢您花时间写下的详细答案。这很有帮助!我现在对基础知识有了更好的理解。
    git clone https://github.com/Peppe-/hello-world.git
    cd hello-world
    mvn jetty:run