Вызов функций апплета вызова из скрипта Java - PullRequest
2 голосов
/ 20 марта 2011

Каждый раз, когда я вызываю функцию моего апплета из моего Java Script, он выдает неопределенное исключение.И мой поиск в Google мне не помог.

вот ссылка на сайт, на котором я сейчас его размещаю: Host Site

Вот мойHTML для встраивания апплета:

<object type="application/x-java-applet" 
            id="ClientApp" name="ClientApp" 
            archive="Cal.jar" 
            width="100" height="100">
        <param name="code"      value="Calendar_Algorithm" />
        <param name="mayscript" value="true" />
   </object>

А вот мой код java-скрипта:

function test(){
        document.writeln("<p> "+"Test"+" </p>");
        try{
            var s=document.ClientApp.getGreeting();
            document.writeln("<p> First: "+s+" </p>");

        }catch(err){
            document.writeln("<p>Error Caught 1: "+err.description+"</p>");
        }


        try{
            var s=document.getElementById('ClientApp').getGreeting();
            document.writeln("<p> Second: "+s+" </p>");

        }catch(err){
            document.writeln("<p>Error Caught 2: "+err.description+"</p>");
        }


        document.close();
    }

Я знаю, что он загружает апплет, потому что я могу видеть графический интерфейс, и если это помогаетвот моя функция инициализации

public void init() {

        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    JLabel lbl = new JLabel(getGreeting());
                    add(lbl);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
    }

вот ссылка на мой полный код Код

У меня сложилось впечатление, что ошибка невероятно очевидна, но япросто не вижу его.

Любая помощь будет отличной!

PS Файлы класса апплета теперь находятся в подписанном jar-файле.

Также это будет помещено впапка webapps сервера Tomcat, но в настоящее время я обращаюсь к ней как к локальному файлу.

1 Ответ

3 голосов
/ 22 марта 2011

С http://www.w3.org/TR/html401/struct/objects.html#h-13.4, об атрибуте объекта:

"Этот атрибут называет ресурс, содержащий сериализованное представление состояния апплета."Я предсказываю, что это не то, что вы намеревались.

Кроме того, если вы используете Firefox Mac, вам нужен параметр mayscript для (JS-2-Java-взаимодействия) LiveConnect для работы.

Способ развертывания апплетов, который работает:

<object type="application/x-java-applet" width="100" height="100">
  <param name="codebase"  value="/applet_dir" />
  <param name="code"      value="Calendar_Algorithm" />
  <param name="mayscript" value="true" />
</applet>

Если у вас не включена консоль Java, вам определенно следует это сделать.Он включен в дополнительных настройках панели управления Java.

Кстати, в Chrome Linux он работает!В Firefox Linux это не так.Firefox не нравится, что указываются и объект, и параметр кода, а также имена классов.

LiveConnect содержит ошибки, особенно на Mac.Для обзора взгляните на: applets-missing-information-about-liveconnect-and-deploy В основном вам нужно знать, какие части LiveConnect использовать, а какие - нет.

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