【问题标题】:Trouble calling an applet method from page无法从页面调用小程序方法
【发布时间】:2009-05-05 20:00:46
【问题描述】:

我知道它不是最佳的,但我必须使用它,一个调用小程序的页面。

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

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

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

任何人都可以解码吗?甚至多种可能性都会比我想出的垃圾更好。对小程序的基本调用来自 javascript 调用:

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

如您所见, passData 方法是我尝试使用的公开方法。小程序本身在页面上运行良好,只是当我尝试调用它时,它除了抛出该错误之外什么都不做。

如果我问开发小程序的人(这不是我的工作),他们是否可以添加建设性错误抛出,或者我什至还没有连接到小程序?

【问题讨论】:

    标签: java javascript gwt applet


    【解决方案1】:

    InvocationTargetException 表示您的小程序中的底层方法引发了异常。 Javascript 到 Java 的“边界”使用反射,因此 Java 代码抛出的异常被包装成这样。 (这可以将它们与在您进入 Java 代码之前抛出的异常区分开来。例如,如果您尝试调用不存在的方法。)

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

    【讨论】:

    • 谢谢,这肯定会有所帮助。如果我得到更多点击,我会保留这个问题,但我会在明天早上回来查看,以防有人对此有更多见解。
    【解决方案2】:

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

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

    【讨论】:

    • 公开的 Java 小程序方法没有正确接收我传递的字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    相关资源
    最近更新 更多