2011-02-28 96 views
0

我已经使用Google Web Toolkit(GWT)在Java中创建了一个Web应用程序。在客户端,GWT生成一个输入框,并且(使用GWT搜索API)进行网络搜索。我想将网络搜索中的一些信息推送到MySQL数据库中,以便使用机器学习应用程序(Weka)进行分析。我有一个与服务器端代码交互的RPC运行。在该服务器端代码中,我尝试建立到MySQL数据库的连接。使用与Google交互的Google Web Toolkit创建应用程序

我目前在本地运行项目,所以,据我所知,谷歌应用程序引擎是托管它。这是事实,当我运行的应用程序,我收到以下消息的支持:

Initializing AppEngine server 
Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger 
The server is running at http://localhost:8888/ 

不过,虽然我能够使用应用程序的搜索部分,它抛出尝试连接时异常我的MySql数据库。

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. 
Caused by: java.security.AccessControlException: access denied (java.net.SocketPermission mysql.database.location resolve) 

我测试过,从一个普通(非网络)的Java程序的数据库连接,并有连接到它从Web应用程序之外没有问题。我相信我得到这个错误,因为谷歌应用程序引擎不会允许连接到外部数据库。

总之我的问题是:
1.虽然我使用的是Google App Engine,是否可以使用服务器端代码连接到MySQL? (我假设不,但这是理想的)。
2.是否可以切换到另一台服务器(如Tomcat)?如果是这样,任何人都可以指出我如何做到这一点?我发现了一个关于如何使用tomcat的旧的stackoverflow问题(http://stackoverflow.com/questions/2208181/gwt-app-deploying-on-tomcat-or-any-other-servlet-container),但它不再指向一个有关使用其他服务器的信息的地方。

感谢您的帮助,如果您希望我提供更多信息,请随时提出后续问题。

回答

3
  1. GAE不允许任何访问其他服务器。你可以使用URLFetch服务,但它可能不是你想要的,你不能用它来连接MySQL。顺便说一句,你可以创建自己的基于http的协议,与其他模块交互,但这可能太复杂了。

  2. GWT编译为JavaScript,它只能在客户端工作,所以在服务器端使用它并不重要,它可以用于任何编程语言和任何Web服务器(请记住,您可以使用JSON进行通信,而不是默认协议)。这只是默认使用java servlets实现RPC构建,您可以在任何java web容器(包括tomcat)中使用它。 GWT是在GAE开发几年之前开发的,它完全是独立的项目,并不需要在服务器端使用GAE。

+0

感谢您的信息。 – remagu 2011-03-01 09:48:24

相关问题