我有一个带有 nosql 数据库的 GWT+GAE 应用程序,该应用程序在 Google App Engine 和 eclipse + gwt 插件中运行良好,开发环境中带有嵌入式码头服务器。现在在生产环境中,出于多种原因,我必须将此应用程序部署在外部自我管理的服务器上,如 Tomcat 或 JBoss。我没有运气地遵循许多教程和提示和技巧,例如:
https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/LYySmvqdbO8
或Link1 Link2 Link3 Link4 Link5
当我在外部服务器(即 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 等外部服务器?还是根本不可能?
我的看法是:应用程序是否在eclipse嵌入式jetty上正确运行,在某种程度上可以配置一个外部jetty分布来运行应用程序