Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает Axis в апплете, апплет не работает вне IDE 
:(
    Опции темы
access
Дата 22.1.2007, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Всем здравствуйте.
Проблема такая: Есть апплет, в нём - запрос к БД чере Tomcat+Axis. Когда запускаюсь под IDE(JIDEA), всё прекрасно работает. Пакую исходники в джар, рядом кладу все необходимые либы,
манифест файл такой:
Manifest-Version: 1.0
Class-Path: axis.jar models.jar swingx-2006_10_27.jar
рисую html:
Код

<html>
  <head>
    <title>Demo</title>
  </head>
  <body>
      <applet code=gui archive="demo.jar"
          width=1000 height=600>
      </applet>
  </body>
</html>
 
запускаю апплет. Он запускается без проблем, но при попытке получить данные от БД сыплет:

Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError
at org.apache.commons.discovery.log.DiscoveryLogFactory._newLog(DiscoveryLogFactory.java:94)
at org.apache.commons.discovery.log.DiscoveryLogFactory.<clinit>(DiscoveryLogFactory.java:57)
at org.apache.commons.discovery.jdk.JDK12Hooks.<clinit>(JDK12Hooks.java:35)
at org.apache.commons.discovery.jdk.JDKHooks.<clinit>(JDKHooks.java:29)
at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:366)
at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:332)
at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:43)
at org.apache.axis.client.Service.getAxisClient(Service.java:104)
at org.apache.axis.client.Service.<init>(Service.java:113)
at common.interfaces.WebComm.runQuery(WebComm.java:98)
at gui.getTreeOrders(gui.java:612)
at gui$5.actionPerformed(gui.java:1639)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission org.apache.commons.discovery.log.level read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at org.apache.commons.discovery.log.SimpleLog.<clinit>(SimpleLog.java:108)
... 39 more

В чём тут дело - подскажите. Если б либы были не видны - апплет вообще не загрузился бы (хотя бы из-за того же swingx-2006_10_27.jar, который появляется на форме сразу при старте). На одном из форумов многозначительно подсказали "Подпиши джарники", и убежали ). Теперь сижу, думаю, что имелось в виду.
PM MAIL   Вверх
cromm3
Дата 22.1.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 22.3.2006

Репутация: нет
Всего: нет



Необходимо указать, откуда брать LogFactory укажи в  archive axis.jar models.jar swingx-2006_10_27.jar может поможет...))
Как подписать апплет можно посмотреть здесь http://forum.vingrad.ru/index.php?act=modu...amp;article=116

Это сообщение отредактировал(а) cromm3 - 22.1.2007, 17:56
PM   Вверх
access
Дата 22.1.2007, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Подправил html:
Код

<html>
  <head>
    <title>demo</title>
  </head>
  <body>
      <applet code=gui              
              archive="demo.jar, axis.jar, models.jar, swingx-2006_10_27.jar" width=1000 height=600>
      </applet>
  </body>
</html>

правильно?
Далее, по указанной ссылке, подписал demo.jar и axis.jar, дошёл до правки java.policy.
В примере, который должен читать файл C:/AUTOEXEC.BAT, указано добавить в java.policy
Код

keystore "file:E:/TEMP/TEST/JAR/.keystore";
grant {
permission java.io.FilePermission "C:/AUTOEXEC.BAT", "read", signedBy "Vingrad";
};

А в моём случае-то что будет? Кто куда пишет/читает? Поясните, пожалуйста, не догоняю...
PM MAIL   Вверх
access
Дата 24.1.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Всё верно, дело оказалось в подписи джаров.
Просмотрел ссылку http://forum.vingrad.ru/index.php?act=modu...amp;article=116. Порылся в гугле, нашёл, народ с таким уже сталкивался:
Цитата

Here are the steps needed to sign a JAR file with a test certificate:
   1. Make sure that you have a JDK 1.2 or JDK 1.3
keytool and jarsigner in your path (located in the
J2SE SDK bin directory).
   2. Create a new key in a new keystore as follows:
          keytool -genkey -keystore myKeystore -alias myself 
      You will get prompted for a information about
the new key, such as password, name, etc. This will
create the myKeystore file on disk. A self-signed test
certificate also will be created.
   3. Check to make sure that everything is ok. To
list the contents of the keystore, use the command:
          keytool -list -keystore myKeystore 
      It should list something like:
          Keystore type: jks
          Keystore provider: SUN
          Your keystore contains 1 entry:
          myself, Tue Jan 23 19:29:32 PST 2001, keyEntry,
          Certificate fingerprint (MD5):      C2:E9:BF:F9:D3:DF:4C:8F:3C:5F:22:9E:AF:0B:42:9D
   4. Finally, sign the JAR file with the test certificate as follows:
          jarsigner -keystore myKeystore test.jar myself 
      Repeat this step on all of your JAR files.

В общем, надо подписать все джары, policy трогать не надо. Пробовал запустить из-под appletviewer - почему-то глюкавит, как и прежде. При запуске через html всё работает нормально.
PM MAIL   Вверх
fufnf
Дата 8.2.2011, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 8.2.2011
Где: г. Киев, Украина

Репутация: нет
Всего: нет



Добрый день.
У меня вопрос касательно

Цитата

Если же файл отсутствует или такого производителя ПО там нет, то пользователю будет выдан запрос, доверять ли данному производителю ПО или нет. Если пользователь ответил да, то апплет получит все разрешения.


Не смотря на то, что на вопрос о доверии сертификату я ответил "Да", я все равно получаю ошибку:

java.security.AccessControlException: access denied (java.awt.AWTPermission accessClipboard)

Модифицировать файл java.policy у всех клиентов моего сайта я не могу - я думаю, что это и так понятно. Как в таком случае выдать разрешение на доступ к буферу обмена из апплета?

upd.: Уже разобрался. Всем спасибо! Как сделать, чтобы работало, написал в своем блоге:
http://community.terrasoft.ua/blogs/5816

Это сообщение отредактировал(а) fufnf - 9.2.2011, 08:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0941 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.