2011-02-28 92 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

相關問題