Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > applet-mysql: Communications link failure


Автор: alex_smirnov 11.7.2007, 17:09
Кто-нибудь пользовался этим драйвером? В апплетвьювере всё работает, а в обозревателе нет :(

Подписываю только свой jar. Есть подозрение, что надо подписывать каким-то образом и mysql-connector-java-5.1.0-bin.jar.

Код

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:353)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2001)
    at com.mysql.jdbc.Connection.<init>(Connection.java:716)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:353)
    at com.mysql.jdbc.Connection.getInstance(Connection.java:295)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at MySQL_connector.MySQLQueryRequest(MySQL_connector.java)
    at AEpplet2.makeSeriesChange(AEpplet2.java)
    at AEpplet2.createChart(AEpplet2.java)
    at AEpplet2.panelLoad(AEpplet2.java)
    at AEpplet2.loadGraphics(AEpplet2.java)
    at AEpplet2.start(AEpplet2.java)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: java.security.AccessControlException: access denied (java.net.SocketPermission 10.0.0.5:3306 connect,resolve)
    at com.mysql.jdbc.StandardSocketFactory.unwrapExceptionToProperClassAndThrowIt(StandardSocketFactory.java:287)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:177)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:262)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:1926)
    ... 19 more



Какие мысли?

Автор: LSD 11.7.2007, 17:40
Цитата(alex_smirnov @  11.7.2007,  18:09 Найти цитируемый пост)
Какие мысли?

Аплет не подписан.

Автор: batigoal 11.7.2007, 18:22
Цитата(LSD @  11.7.2007,  18:40 Найти цитируемый пост)
Аплет не подписан. 


Цитата(alex_smirnov @  11.7.2007,  18:09 Найти цитируемый пост)
Подписываю только свой jar


Так что подписан.

Автор: alex_smirnov 11.7.2007, 19:12
Так: все класс файлы в моём подписанном jar'е.
С ним на сервере лежит ещё три внешних jar'а, один из них mysql-connector-java-5.1.0-bin.jar

Ещё идеи?

з.ы.: апплет действительно подписан, браузер спрашивает о приёме сертификата при загрузке страницы.

Автор: ecologist 12.7.2007, 08:39
Но ошибка-то связана с секьюрити - видимо что-то броузер не смог осилить. Может посмотреть список сертификатов для броузера, удалить старые и попробовать снова использовать апплет. По идее броузер (вернее JRE) должен спросить по поводу подписанного JAR - доверять, не доверять - и дальше работать.
И смотреть что будет дальше. Хотя SocketException может быть вызван уже JAR'ом MySQL - тогда надо наверно покопаться еще.

Автор: alex_smirnov 12.7.2007, 11:15
Браузер спросил. Я ему ответил - "доверять".
Сертификаты в Java Control Panel, ровно, как и кэш вычистил.
Не пашет. Видимо действительно исключение связано с jar'ом драйвера. Сижу разбираюсь.

Ещё информация: firewall выключен, запускаю апплет под windows, база на соседней unix машине.

Автор: LSD 12.7.2007, 13:47
Попробуй запаковать классы mysql connector-а вместе со своими классами в один jar.

Автор: alex_smirnov 12.7.2007, 14:00
))) вот сейчас сижу и мучаюсь, не компилится(пытался с сорцами коннектора собрать)... хотя, действительно, надо уже готовые классники запихивать туды. пробую.

Автор: alex_smirnov 12.7.2007, 14:20
ну всё, мучения в этом топике закончились))), они вылились в мучения в предыдущем: 

http://forum.vingrad.ru/forum/topic-162940.html

как оно заработало:
оказывается, такие секьюрные части, как драйвер БД надо хранить в том же подписанном jar файле, что и сам апплет.
( быть может эти две строчки станут дополнением к модному мануалу по подписыванию ;) )

ура, в принципе, можно радоваться, но!

прошу обратить особое внимание: http://forum.vingrad.ru/forum/topic-162940.html, тема пока открыта и совершенно непонятно как к ней подойти.

всем спасибо, топ закрыт

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)