【问题标题】:How to deploy GWT GAE applications on external server如何在外部服务器上部署 GWT GAE 应用程序
【发布时间】:2013-04-10 13:19:00
【问题描述】:

我有一个带有 nosql 数据库的 GWT+GAE 应用程序,该应用程序在 Google App Engine 和 eclipse + gwt 插件中运行良好,开发环境中带有嵌入式码头服务器。 现在在生产环境中,出于多种原因,我必须将此应用程序部署在外部自我管理的服务器上,如 Tomcat 或 JBoss。 我没有运气地遵循许多教程和提示和技巧,例如:

https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#How_do_I_use_my_own_server_in_development_mode_instead_of_GWT%27s

https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/LYySmvqdbO8

Link1Link2Link3Link4Link5

当我在外部服务器(即 tomcat 或 jetty)上部署我的应用程序时,它可以正确启动,但是当我使用数据库连接进行调用时,它会出现以下错误:

Caused by: java.lang.NullPointerException: No API environment is registered for this thread.
    at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:86)
    at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:96)
    at com.google.appengine.api.datastore.Query.<init>(Query.java:171)
    at com.google.appengine.api.datastore.Query.<init>(Query.java:102)
    at com.googlecode.objectify.impl.QueryImpl.<init>(QueryImpl.java:69)
    at com.googlecode.objectify.impl.AsyncObjectifyImpl.query(AsyncObjectifyImpl.java:354)
    at com.googlecode.objectify.impl.ObjectifyImpl.query(ObjectifyImpl.java:207)
    at com.beoui.geocell.ObjectifyGeocellQueryEngine.query(ObjectifyGeocellQueryEngine.java:52)
    at com.beoui.geocell.GeocellManager.proximitySearch(GeocellManager.java:381)

如何部署到 Tomcat、JBOSS 或 Jetty 等外部服务器? 还是it isn't possible

我的看法是:应用是否在eclipse嵌入式jetty上正确运行,是否可以通过某种方式配置外部jetty分布来运行应用

【问题讨论】:

    标签: google-app-engine gwt tomcat jetty


    【解决方案1】:

    GAE 带有set of services,它们基本上是隐藏在 API 后面的大型外部系统。本地开发服务器只是一个带有嵌入式数据库和模仿生产 GAE 的 API 层的 Jetty。您不能将开发服务器用于生产目的 - 它不是为此而设计的,并且没有生产系统的并发性和可靠性特性。

    如果您想在其他地方运行 GAE 代码而不是生产 GAE 服务,请查看 AppScaleCapeDwarf

    此外,您提供的大多数链接都涉及在 Tomcat/Jetty 上运行 GWT 应用程序,但您在使用 AppEngine 时遇到了问题。 GWTAppEngine 是两种独立的技术(可以一起工作,但不是必需的)。

    【讨论】:

    • 我认为 CapeDwarf 解决了我的问题,即使现在是一个 embrional 发行版并且文档很少。现在它给了我这个错误:org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.jboss.capedwarf.admin.DatastoreStatistics at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:167) at org.jboss.weld.manager.BeanManagerImpl.createAnnotatedType(BeanManagerImpl.java:1026)。有什么建议吗?
    猜你喜欢
    • 2015-01-26
    • 2011-08-10
    • 2020-11-27
    • 2011-02-25
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多