簡體   English   中英

使用Google Web Toolkit創建與MySQL交互的應用程序

[英]Creating an application with Google Web Toolkit that interacts with MySQL

我已經使用Google Web Toolkit(GWT)用Java創建了一個Web應用程序。 在客戶端,GWT會生成一個輸入框,並(使用GWT搜索api)進行網絡搜索。 我想將Web搜索中的某些信息推送到MySQL數據庫中,以便可以使用機器學習應用程序(Weka)對其進行分析。 我已經運行了與服務器端代碼交互的RPC。 在該服務器端代碼中,我嘗試建立與MySQL數據庫的連接。

我目前正在本地運行該項目,據我所知,谷歌應用程序引擎正在托管該項目。 當我運行該應用程序時,我收到以下消息,這得到了支持:

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)  

我已經測試了來自常規(非基於Web)Java程序的數據庫連接,從Web應用程序外部連接至數據庫沒有問題。 我相信我收到此錯誤消息是因為Google App Engine不允許連接到外部數據庫。

簡而言之,我的問題是:
1.盡管我使用的是Google App Engine,但是可以使用服務器端代碼連接到MySQL嗎? (我假設沒有,但這很理想)。
2.是否可以切換到另一台服務器(例如Tomcat)? 如果是這樣,誰能指出我有關如何執行此操作的參考資料? 我發現了一個有關如何使用tomcat的老stackoverflow問題(http://stackoverflow.com/questions/2208181/gwt-app-deploying-on-tomcat-or-any-other-servlet-container),但它不再指向一個具有有關使用其他服務器的信息的地方。

感謝您的幫助,如果您希望我提供更多信息,請隨時提出后續問題。

  1. GAE禁止訪問其他服務器。 您可以使用URLFetch服務,但可能不是您想要的,並且不能將其用於MySQL連接。 順便說一句,您可以創建自己的基於http的協議來與其他模塊進行交互,但這可能太復雜了。

  2. GWT可以編譯為javascript,並且只能在客戶端使用,因此您在服務器端使用的內容都沒有關系,它可以用於任何編程語言和任何網絡服務器(請記住,您可以使用JSON進行通信,而不是默認協議)。 它只是使用Java Servlet進行RPC構建的默認實現,您可以在任何Java Web容器(包括tomcat)中使用它。 GWT是在GAE之前幾年開發的,它是完全獨立的項目,不需要在服務器端使用GAE。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM