无法从页面调用applet方法

时间:2009-05-05 20:00:46

标签: java javascript gwt applet

我知道这不是最佳选择,但我必须使用它,一个调用applet的页面。

我的问题是,当我这样做时,我收到了一个相当神秘的错误信息:

“未捕获的异常:错误调用NPObject上的方法!

[插件异常:java.lang.reflect.InvocationTargetException]。“

任何人都可以解码吗?即便有多种可能性比我提出的垃圾更好。对applet的基本调用来自javascript调用:

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

如您所见,passData方法是我尝试使用的公开方法。 applet本身在页面上运行正常,就在我尝试调用它时,除了抛出该错误之外它什么都不做。

如果我问那个在applet上工作的人(这不是我的部分),他们是否有可能添加建设性的错误抛出,或者我甚至还没有连接到applet?

2 个答案:

答案 0 :(得分:4)

InvocationTargetException表示applet中的基础方法引发了异常。 Javascript to Java“boundary”使用反射,因此Java代码抛出的异常会像这样包装。 (这使得可以将它们与进入Java代码之前抛出的异常区分开来。例如,如果您尝试调用不存在的方法。)

您可以通过捕获InvocationTargetException然后调用其getTargetException()getCause()方法来获取原始异常(它们都完全相同)。

答案 1 :(得分:0)

我建议您查看 someOtherData 是什么。如果 someOtherData 不是正确的类型,则可能导致此类异常。听起来你正试图传递一个DOM对象?

O'Reilly's JavaScript Guide中查看此页面以查看可用类型。

相关问题