Создание приложения с Google Web Toolkit, которое взаимодействует с MySQL - PullRequest
0 голосов
/ 28 февраля 2011

Я создал веб-приложение на Java с помощью Google Web Toolkit (GWT).На стороне клиента GWT генерирует поле ввода и (используя API поиска GWT) выполняет поиск в Интернете.Я хотел бы поместить некоторую информацию из веб-поиска в базу данных MySQL, чтобы ее можно было проанализировать с помощью приложения машинного обучения (Weka).У меня запущен RPC, который взаимодействует с кодом на стороне сервера.В этом коде на стороне сервера я попытался установить соединение с базой данных MySQL.

В настоящее время я работаю над проектом локально, поэтому, насколько я могу судить, движок приложения Google размещает его.Это подтверждается тем фактом, что при запуске приложения появляется следующее сообщение:

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-программы, и нет проблем с подключением к ней извне веб-приложения.Я считаю, что я получаю эту ошибку, потому что Google App Engine не разрешает подключения к внешним базам данных.

Короче говоря, мои вопросы:
1. Хотя я использую Google App Engine, возможно ли использовать код на стороне сервера для подключения к MySQL?(Я предполагаю, что нет, но это было бы идеально).
2. Можно ли переключиться на другой сервер (например, Tomcat)?Если так, может кто-нибудь указать мне ссылки о том, как это сделать?Я нашел старый вопрос stackoverflow о том, как использовать tomcat (/1481499/prilozhenie-gwt-razvertyvanie-na-tomcat-ili-lybom-drugom-konteinere-servletov), но он больше не направляет в место, где есть информация об использовании других серверов.

Спасибо за вашу помощь и, пожалуйста, не стесняйтесь задавать дополнительные вопросыесли вы хотите, чтобы я предоставил дополнительную информацию.

1 Ответ

3 голосов
/ 28 февраля 2011
  1. GAE запрещает любой доступ к другим серверам. Вы можете использовать сервис URLFetch, но это, вероятно, не то, что вам нужно, и вы не можете использовать его для подключения к MySQL. Кстати, вы можете создать свой собственный протокол на основе http для взаимодействия с другими вашими модулями, но это может быть слишком сложно.

  2. GWT компилируется в javascript и работает только на стороне клиента, поэтому не имеет значения, что вы используете на стороне сервера, он может использоваться на любом языке программирования и любом веб-сервере (помните вы можете использовать JSON для связи вместо протокола по умолчанию). Это просто стандартная реализация сборки RPC с использованием Java-сервлетов, и вы можете использовать ее внутри любого веб-контейнера Java, включая tomcat. GWT был разработан за несколько лет до GAE, это совершенно независимые проекты, и для него не требуется использовать GAE на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...