applet调用中参数的大小太大

时间:2014-10-24 06:55:34

标签: java javascript applet liveconnect

我在将一些数据从JavaScript传递到applet时遇到了问题。我认为数据的大小太大(字符串中的18M字符)以通过LiveConnect传递它。

我把代码示例放在下面:

JavaScript的:

var bigData = generateSomeBigData(18000000); // string contaning 18 000 000 characters
applet.Execute(bigData); // no error

小程序:

public void Execute(String data) {
    this.doSomethingWithData(data);  // data is null
}

我在java控制台或javascript代码中没有收到任何错误或异常。 我已经尝试使用更大的堆运行applet,但它没有帮助。

... <param name="java_arguments" value="-Xmx128m" /> ...

唯一的问题是我得到null而不是字符串包含数据,它不依赖于浏览器(FF,Chrome)。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我将数据生成移动到服务器站点,并且使用one time self destructing link将数据传递到applet。 Applet可以下载不再可用的信息,并返回结果。

这里有一个例子:

服务器:

String bigData = this.generateBigData(18000000);
String linkToData = this.getOneTimeLink(bigData);

JavaScript的:

applet.Execute(linkToBigData);

小程序:

public void Execute(String link) {
    String data = this.downloadData(link);
    this.doSomethingWithData(data);  // data is not null ;)
}

编辑2015年5月11日:

也许你需要一个小的解释来一次破坏链接。我使用它是因为这是我项目的另一个要求,但没有必要实现解决方案。