【问题标题】:How to deploy a vaadin project on GAE?如何在 GAE 上部署 vaadin 项目?
【发布时间】:2013-07-30 09:10:14
【问题描述】:

我正在尝试将现有的 vaadin 项目部署到 GAE。 但我不断收到错误消息:ClassNotFoundException: com.vaadin.server.GAEApplicationServlet

这就是我所做的:

  • 在我的extends UI 类中注释掉了@WebServlet 注释

  • 项目属性,已检查:使用 Google App Engine。因此,一些库被添加到 我的WEB-INF/lib 文件夹:gwt-servlet, jsr107, some appendine-*

  • 创建了appengine-web.xml

  • 创建了web.xml:

     <servlet>
        <servlet-name>MyProject</servlet-name>
        <servlet-class>com.vaadin.server.GAEApplicationServlet</servlet-class>
        <init-param>
            <param-name>UI</param-name>
            <param-value>de.mypath.ApplicationUI</param-value>
        </init-param>
    </servlet>
    

&lt;servlet-mapping&gt; &lt;servlet-name&gt;MyProject&lt;/servlet-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/servlet-mapping&gt;

如果我使用 com.vaadin.server.VaadinServlet 并在本地 tomcat 上运行,我可以正常运行我的项目。 但是在 jetty GAE 上运行(或者也部署在云中)我得到了上面提到的 ClassNotFountException

这里有什么问题?

【问题讨论】:

    标签: java google-app-engine vaadin


    【解决方案1】:

    自从我使用 GAE 以来已经有一段时间了,但是当我使用 GAE 时,我似乎不得不自己向 WEB-INF/lib 添加一些 jar,尽管在本地一切正常。稍后我会收到关于这些相同 jar 的警告,但如果我删除它们,我会再次收到 NoClassDefFoundException。

    【讨论】:

    • 被投诉的类来自 vaadin-servlet.jar。我已经将它(在所有其他库中)复制到 WEB-INF/lib 文件夹中以进行测试,但没有改变任何东西......
    • 我能想到的唯一另一件事是 GAE 中不允许使用某些类,尽管看起来是 GAEApplicationServlet,因为名称不应该引用其中的任何一个。最新的 vaadin-servlet.jar 有多新?也许试试以前的版本?
    • 使用7.1.1,也试过7.1.0。但是因为我使用的是 Servlet 3.0,所以不能再往前走,这是以前不支持的......
    【解决方案2】:

    vaadin-server-7.5.10.jar 复制到 WEB-INF/lib 并使用 com.vaadin.server.GAEVaadinServlet 而不是com.vaadin.server.GAEApplicationServlet 已经解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 2021-01-24
      • 2019-12-28
      相关资源
      最近更新 更多