Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > InvocationTargetException при вызове js'ом метода


Автор: zuran 27.7.2009, 16:35
Добрый день,

Есть аплет в подписанном яре. С помощью яваскрипта хочу вызвать публичный метод из аплета. 

Файербаг выкидывает в консоле: 
uncaught exception: Error calling method on NPObject! [plugin exception: java.lang.reflect.InvocationTargetException].

Код

<applet code="com.cardweblogin.CardWebLogin" archive="podpis3.jar"  width="1" height="1" mayscript>
        </applet>
        <br>        
<input type="button" value="click" onclick="document.applets[0].podpisz()" /><br/>


Если метод находится в том же классе, то все работает.
И если вызов нужного мне метода перенести в инит, то все работает


Функция, которую хочу вызвать
Код

public void podpisz(){
    
                 
             SignDialog signDialog = new SignDialog();            
             if(signDialog.run()){                 
                    String libraryFileName = signDialog.getLibraryFileName();
                    String smartCardPINCode = signDialog.getSmartCardPINCode();
                    int smartCardSlotNo = signDialog.getSmartCardSlotNo();
                    
                    if(inspectCard(libraryFileName, smartCardPINCode, smartCardSlotNo)){
                     
                     JSObject.getWindow(this).eval((new StringBuilder()).append("document.form_register.certIssuerDN.value = '").append(certIssuerDN).append("'").toString());
                     JSObject.getWindow(this).eval((new StringBuilder()).append("document.form_register.certSubjectDN.value = '").append(certSubjectDN).append("'").toString());
                     JSObject.getWindow(this).eval((new StringBuilder()).append("document.form_register.certNotBefore.value = '").append(certNotBefore).append("'").toString());
                     JSObject.getWindow(this).eval((new StringBuilder()).append("document.form_register.certNotAfter.value = '").append(certNotAfter).append("'").toString());
                     JSObject.getWindow(this).eval((new StringBuilder()).append("document.form_register.certValid.value = '").append(certValid).append("'").toString());
                     try {
                      
                            getAppletContext().showDocument(new URL("javascript:form_register_sign()"));
                        } catch (MalformedURLException e) {                    
                            e.printStackTrace();
                        }
                    }                 
                }else{                 
                    return;
                }        
    }



Ага. И если вставлять проверки, то выводит до if, но и в else не попадает
Что можно сделать

Автор: LSD 27.7.2009, 19:04
А в JavaConsole есть че (по идее там должен быть java.lang.reflect.InvocationTargetException)?

Автор: zuran 28.7.2009, 09:22
Самое главное что нет ничего

Автор: LSD 29.7.2009, 17:29
Попробуй запустить аплет под отладчиком и посмотреть где именно падает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)