繁体   English   中英

当向其传递大量数据时,JApplet.getParameter返回null

[英]JApplet.getParameter returns null when passing large amount data to it

我有一个网络应用程序。

在某些时候,我通过smartCard和PKCS11进行了一些数据签名。 由于Java可以访问连接到计算机的设备,因此我使用由Web应用程序启动的applet。

直到现在,我要签名的数据(以及其他一些东西)都通过作为applet参数提供的base64编码字符串发送到applet。 然后,在小程序中,在用户将其密码提供给智能卡之后,传递给小程序的数据将被签名并发送回主Web应用程序。

我通过以下方式读取了传递给应用程序的数据:

String dataToDecode = this.getParameter("paramStr");
... 

在扩展JApplet的类中。

一切都还好,直到我签署了单个文件。

现在提出了新要求,我需要立即签署约100个文档。 调整了Java代码以处理许多文档,但是当我尝试对数据进行签名时, 小程序崩溃,没有任何错误,任何符号,任何异常,只是什么也没有,控制台窗口也消失了。 请参阅编辑1

  1. 我试图通过类似-Xmx2048m的运行时参数来增加可用于JAVA的内存量,但这没有帮助。
  2. 经过反复试验,我可以正确处理约15个文档。
  3. 当我从NetBeans运行没有applet的应用程序时,我可以毫无问题地对100个文档的数据进行签名,但是在测试过程中,我从文件中读取了base64编码的数据。

我怀疑当我尝试通过读取超过10 MB的数据时会发生崩溃

JApplet.getParameter("paramStr");

我的问题是:

  1. JApplet的getParameter方法有大小限制吗?
  2. 如何检测/记录导致崩溃的原因?
  3. 在这种情况下,您对如何处理大量数据有任何建议吗?

谢谢你的帮助


编辑1:

在我的评论中,我说我确定JVM会崩溃。 现在我发现事实并非如此

由于与PKCS11初始化/小程序和JVM相关的某些原因,我将System.Exit(0)放在try / catch / finally的finally块中。 我通常避免这样做。

我修改了代码...并且没有崩溃,只是方法

JApplet.getParameter("paramStr")

当大量数据传递到其中时返回null,然后出现异常。 很抱歉在第一个问题中“欺骗”您。 我没有意识到。

因此,现在的主要问题是:JApplet.getParameter(“ paramStr”)可以处理的数据量是否有限制?

谢谢

也可能是由于浏览器错误。 我建议尝试调试它是没有意义的-通过从applet通过HTTP向服务器请求数据来回避问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM