Встраивание Java JApplet в HTML-страницу при использовании сокетов - PullRequest
6 голосов
/ 13 октября 2011

У меня проблемы с получением и апплетом для работы на HTML-странице.Когда я удаляю соединение с сокетом из класса апплета и тестирую апплет на странице HTML, апплет отображается, но когда я добавляю соединение с сокетом обратно в файл класса, апплет не отображается, и консоль Java появляется без трассировки стека.Я уверен, что это причина безопасности, потому что я использую сокетные соединения, поэтому я создал подписанный jar-файл и поместил его в тег апплета следующим образом:

<APPLET codebase="classes" archive="captureaudio/AppletTest.jar" code="captureaudio/AppletTest.class" width=350 height=200></APPLET>

Но создание этой подписине работает.

Может ли кто-нибудь помочь мне с этим?

ОБНОВЛЕНО

В ответ на Эндрю Томпсон

  1. Нет, мне не предлагается принять цифровойподписанный код
  2. Нет, апплет, который я сейчас тестирую, локально
  3. Да, апплет пытается подключиться обратно к серверу, сервер работает локально
  4. Я не уверен, что Javaконсоль не показывает никаких исключений.

КАК Я СОЗДАЛ ПОДПИСАННЫЙ ФАЙЛ JAR

Пространство имен моего апплета - это captureaudio.AppletTest class

В приглашении cmd, гдеФайл класса расположен:

  1. Вам нужно использовать keytool.exe, здесь я нашел, как создать подпись jar для апплетов www.xinotes.org/notes/note/434/

  2. jar -cf AppletTest.jar AppletTest.class

  3. > jarsigner AppletTest.jar MyCert Предупреждение: в этом банке содержатся записи, срок действия сертификата подписавшего которых истекает в течение шести месяцев

4.> jarsigner -verify -verbose -certs AppletTest.jar

sk 153 чт 13 октября 11:28:38 BST 2011 META-INF / MANIFEST.MF

  X.509, CN=xxxxx, OU=None, O=None, L=xxxxx, ST=xxxxx, C=GB (myce

rt) [сертификат будетистекает 10/01/12 20:55]

     315 Thu Oct 13 11:28:40 BST 2011 META-INF/MYCERT.SF
    1352 Thu Oct 13 11:28:40 BST 2011 META-INF/MYCERT.RSA
       0 Thu Oct 13 11:28:10 BST 2011 META-INF/

smk 11015 чт 13 октября 10:49:08 BST 2011 AppletTest.class

  X.509, CN=xxxxxx, OU=None, O=None, L=xxxxxxxx, ST=xxxxx, C=GB (myce

rt) [срок действия сертификата истекает01.10.12 20:55]

s = подпись проверена m = запись указана в манифесте k = по крайней мере один сертификат был найден в хранилище ключей i = по крайней мере один сертификат был найден в области идентификации

jar проверено.

JAVA CONSOLE

Подключаемый модуль Java 10.0.0.147 Использование JRE версии 1.7.0-b147 Клиент Java HotSpot (TM) VM

Домашний каталог пользователя = C: \ Users \ xxxxxxx

c: очистить окно консоли f: завершить объекты в очереди завершения g: сборщик мусораh: показать это справочное сообщение l: список загрузчика классов дампа m: использование памяти для печати o: запись в журнал триггера q: скрыть консоль r: конфигурация политики перезагрузки s: параметры системы и развертывания дампа t: список потоков дампа v: стек потока дампа x: очистить загрузчик классовкэш

0-5: установить уровень трассировки на

Обнаружен по пути начальной загрузки: C: \ PROGRA ~ 1 \ Java \ jre7 \ lib \ deploy.jar

ОБНОВЛЕНИЕ

Расположение папок

 web root> 
------AppletTest.jar
------classes>
-----------captureaudio>
---------------------AppletTest.class    

1 Ответ

0 голосов
/ 01 мая 2013

Использовать протокол запуска сети Java (JNLP). Это правильный способ распространения вашего апплета. И да, он должен быть подписан, чтобы получить доступ к функциям сокета.

http://en.wikipedia.org/wiki/Java_Web_Start#Java_Network_Launching_Protocol_.28JNLP.29 http://www.oracle.com/technetwork/articles/javase/jnlp-142088.html

...