Я создал Java-апплет в прошлом году для подключения сокета из веб-приложения к локальному запущенному java-серверу. он работал нормально.Как я могу использовать методы апплета Java с помощью Javascript?
с последних обновлений java (7 r21, я думаю), я больше не могу обращаться к методам в javascript. Прямо сейчас я уменьшил апплет до тестового апплета (без методов doPriviligedAction), но даже это больше не работает.
текущий код, как
import java.applet.*;
public class socketApplet extends Applet {
public void init() {
System.out.println("Applet initialisiert.");
}
public void start() {
System.out.println("Applet gestartet.");
}
public void paint() {
System.out.println("Applet aktualisiert.");
}
public void stop() {
System.out.println("Applet angehalten.");
}
public void destroy() {
System.out.println("Applet beendet.");
}
public String testApplet() {
System.out.println("Applet getestet.");
return "Yep, I'm the Applet.";
}
}
Перед обновлением я мог бы получить доступ к методам, как testApplet() в JavaScript, как это:
document.socketApplet.testApplet();
Апплет самоподписан и внедренного с апплетом HTML-теги. Он запускается (консоль java открывает и печатает отладочные сообщения, определенные в методах init, start и paint), но я не могу получить доступ к методу testApplet(). Ответ в Javascript «неопределен», пока апплет существует.
после чтения некоторого времени (несколько дней теперь ...) о новых изменениях безопасности, я добавил manifest.txt со следующим содержанием:
Main-Class: socketApplet
Permissions: all-permissions
Codebase: *
Trusted-Library: true
Не повез с или без доверенного -Атрибут библиотеки.
Что мне нужно сделать, чтобы снова включить доступ с помощью javascript?
Edit: Реализация:
<applet id="socketApplet" width="100" height="100" archive="../../socketApplet.jar" name="socketApplet" code="socketApplet" scriptable="true">
Я тестирую с новейшими версиями Firefox и Safari на до даты Mac OS X машины.
Edit2: я творю и подписание баночки, как этого
EDIT3: Хорошо, теперь моя баночка работала несколько раз (не подряд), я получил
и в консоли
Но большую часть времени он не работает. перезапуск браузера, очистка кешей, ничего не работает. теперь проверим это на другом ПК (снова).
Редактировать: Хорошо, что он работает на виртуальной машине с окнами xp и java 32bit 7u25 - на моем 64-битном Mac всего лишь 1 из 30 попыток.
Какую версию какой браузер является тестирование в? Что такое HTML, используемый для запуска апплета? –
ty для быстрого ответа, я обновил основную запись (см. Раздел редактирования в конце). –
Рекомендации: 1) сделайте апплет отличной от нуля ширины и высоты. Элемент 0x0 на веб-странице автоматически подозрительный, и это может вызвать более высокий уровень безопасности в браузере или любые инструменты, которые браузер установил для поиска подозрительной активности. 2) Добавьте атрибут 'scriptable =" true ", чтобы указать, что апплет может быть вызван из Javascript. –