Java - может подключаться к серверу MySQL в NetBeans, но не будет работать как апплет - PullRequest
2 голосов
/ 26 августа 2011

Я пытаюсь подключиться к серверу mysql (который сейчас находится на той же машине, что и в случае подключения к localost (я использую Windows и у меня установлены Apache, PHP, Mysql и phpmyadmin), но яможет нормально подключиться к серверу, на котором запущено приложение в Netbeans, но если я запускаю апплет в браузере, он не может подключиться, я получаю эту ошибку:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Не удалось создать соединение с сервером базы данных. Попытка переподключения 3 раза. Отказ.

У вас есть идеи, что может вызвать это? Насколько я знаю, это все сейчас подключается к моей локальной машине. Что можетбыть проблемой, сервером MySQL или apache, или приложением java, и как я мог решить это? Спасибо.

Я попытался подписать апплет, и я думаю, что он подписал его, но это пока не дает мне эту ошибкухотя. Спасибо.

1 Ответ

1 голос
/ 26 августа 2011

По умолчанию в Java применяется что-то похожее на политику одинакового происхождения Javascript: ненадежные апплеты могут открывать только сетевое соединение с сервером, с которого они были загружены, но междоменный доступ запрещен.

Чтобы преодолеть это, необходимо подписать апплет, но он сам по себе еще недостаточен для предоставления расширенных разрешений, вам также нужно явно указать, какие разрешения вам требуются.Чтобы проверить, работает ли он, попробуйте сначала предоставить AllPermission , но вы все равно можете настроить его позже.

Простой способ предоставить AllPermission - развернуть апплет с помощью JNLP * 1008.*, добавьте

<security> 
  <all-permissions/>
</security>

в дескриптор развертывания JNLP.

Затем убедитесь, что все JAR-файлы, на которые ссылается апплет, подписаны с использованием того же сертификат.Недостаточно подписать только файл Jar апплета.

В «Панели управления Java» убедитесь, что в «Advanced / Security» вы

Allow user to grant permissions to signed content

Это должно решить.


Простая проверка, действительно ли подпись прошла успешно:

Откройте файл Jar чем-то вроде WinZip, перейдите в папку META-INF и проверьте,рядом с MANIFEST.MF существует два дополнительных файла - один заканчивается на .SF, а другой, скорее всего, на .RSA.

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