Domanda

So che non è ottimale, ma devo lavorare con esso, una pagina che chiama l'applet.

Il mio problema è che, quando lo faccio, ricevo un messaggio di errore piuttosto criptico:

" eccezione non rilevata: errore durante la chiamata del metodo su NPObject!

[eccezione plug-in: java.lang.reflect.InvocationTargetException]. "

Qualcuno può decodificarlo? Anche più possibilità sarebbero migliori della spazzatura che mi è venuta in mente. La chiamata di base all'applet proviene da una chiamata javascript:

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

Come puoi vedere, il metodo passData è il metodo esposto che sto cercando di usare. L'applet stesso funziona benissimo sulla pagina, è solo quando provo a chiamarlo, non fa altro che lanciare quell'errore.

Se chiedo alla persona che lavora sull'applet (non è la mia parte) è possibile che aggiungano un errore costruttivo o non sono ancora sul punto di collegarmi all'applet?

È stato utile?

Soluzione

InvocationTargetException indica che il metodo sottostante nell'applet ha generato un'eccezione. Il limite da Javascript a Java "limite" usa la riflessione, quindi le eccezioni generate dal codice Java vengono racchiuse in questo modo. (Ciò consente di distinguerli dalle eccezioni emesse prima di accedere al codice Java. Ad esempio, se si è tentato di chiamare un metodo inesistente.)

Puoi ottenere l'eccezione originale catturando InvocationTargetException e quindi chiamando il suo metodo getTargetException () o getCause () (entrambi fanno esattamente la stessa cosa).

Altri suggerimenti

Suggerirei di esaminare cosa sia someOtherData . Se someOtherData non è un tipo corretto, potrebbe causare una tale eccezione. Sembra che tu stia provando a passare un oggetto DOM?

Dai un'occhiata a questa pagina nella Guida JavaScript di O'Reilly per visualizzare i tipi disponibili.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top