Проблема с вызовом метода апплета со страницы

Я знаю, что это не оптимально, но мне приходится с этим работать, страница делает вызовы апплета.

Моя проблема в том, что когда я это делаю, я получаю довольно загадочное сообщение об ошибке:

"неперехваченное исключение: ошибка вызова метода для NPObject!

[исключение плагина: java.lang.reflect.InvocationTargetException]."

Кто-нибудь может расшифровать это? Даже несколько вариантов были бы лучше, чем тот хлам, который я придумал. Основной вызов апплета — это вызов javascript:

document.getElementById('my_applet').passData("pass some data", someOtherData);

Как видите, метод passData — это открытый метод, который я пытаюсь использовать. Сам апплет отлично работает на странице, просто когда я пытаюсь это вызвать, он ничего не делает, кроме как выдает эту ошибку.

Если я спрошу человека, работающего над апплетом (это не моя часть), могут ли они добавить конструктивную выдачу ошибок или я еще даже не на этапе подключения к апплету?


person Organiccat    schedule 05.05.2009    source источник


Ответы (2)


InvocationTargetException указывает, что базовый метод в вашем апплете вызвал исключение. «Граница» между Javascript и Java использует отражение, поэтому исключения, создаваемые кодом Java, оборачиваются следующим образом. (Это позволяет отличить их от исключений, сгенерированных до того, как вы попали в код Java. Например, если вы попытались вызвать несуществующий метод.)

Вы можете получить исходное исключение, перехватив InvocationTargetException, а затем вызвав его метод getTargetException() или getCause() (они оба делают одно и то же).

person Laurence Gonsalves    schedule 05.05.2009
comment
Спасибо, это точно поможет. Я оставлю вопрос открытым на случай, если я получу еще какие-либо хиты, но я проверю завтра утром, если у кого-то есть какие-то дополнительные сведения об этом. - person Organiccat; 06.05.2009

Я предлагаю вам изучить, что такое someOtherData. Если someOtherData имеет неправильный тип, это может вызвать такое исключение. Похоже, вы пытаетесь передать объект DOM?

Взгляните на эту страницу в Руководстве O'Reilly по JavaScript, чтобы увидеть доступные типы.

person Pool    schedule 11.05.2009
comment
Строка, которую я передал, не была правильно получена открытым методом Java-апплета. - person Organiccat; 12.05.2009