Одно могу сказать наверняка: у вас есть пустой блок catch, поэтому вы глотаете любые исключения, скрывая их.Поскольку вы говорите, что функция возвращает ноль, наиболее вероятный сценарий - исключение, которое происходит где-то внутри блока try-catch.Измените код на:
} catch (Exception e) {
throw new RuntimeException(e);
}
и посмотрите, что появляется на консоли Java.
Редактируйте: Если вы не готовы прислушиваться к добрым советам, донане задавайте вопросов.Я на 99,999% уверен, что ошибка действительно в вашем java-коде (независимо от того, что вы говорите в комментарии), и что добавление правильного сообщения об ошибках даст вам реальный ответ в одно мгновение.Добавьте бросок new RuntimeException (e) и посмотрите на консоль.
Могу поспорить, что вы увидите какую-то ошибку «несанкционированной операции», потому что ваш апплет, вероятно, не подписан (по крайней мере, вы не написали)что-нибудь об этом) и, следовательно, та же политика происхождения все еще применяется (если бы она не применялась для неподписанных апплетов, Java была бы одной большой дырой в безопасности).
Если окажется, что я прав, я надеюсь, что вы принимаетемой ответ, даже если вы считаете меня грубым: -)
Второе редактирование: Я проверил ваш код (вставил в Netbeans, немного отредактировал, скомпилировал), и он отлично работает (firefox, explorer - обана окнах) И ваши симптомы, кажется, сдвигаются (вы либо говорите, что он возвращает ноль, либо что он возвращает неопределенный, либо что вы вообще не можете вызвать его) - у меня есть одна последняя идея.Распространенная ошибка, которую делают люди, - это вызывать объекты (например, апплеты или flash) до того, как они действительно загрузятся.На каком этапе вы исполняете свой javascript?Вы уверены, что апплет загружен?Что если вы добавите тайм-аут (пару секунд) или выполните функцию, нажав «onclick» на какую-то кнопку?что-нибудь меняется?Какой браузер вы используете?какой у тебя javascript?какая операционная система?какая версия плагина?Если мы не сможем воспроизвести проблему, мы не сможем помочь.
Третье редактирование: (после некоторых экспериментов автора вопроса);оберните вызов javascript в действие PriviledgedAction, например, так:
public String callFromJs(final String url, final String method){
return AccessController.doPrivileged(new PriviledgetAction<String>(){
public String run(){
return getUrl(url, method);
}
});
}
и не глотайте исключения: -)