【问题标题】:What is the correct configuration to use GSON inside a Applet implementing with eclipse (Kepler)在使用 eclipse 实现的 Applet 中使用 GSON 的正确配置是什么(开普勒)
【发布时间】:2026-02-08 20:30:02
【问题描述】:

首先我想说我是 Java / Web 开发的初学者(但在编程和分析方面有丰富的经验)。我在几个位置搜索了几项调查,但没有找到我认为是配置问题的解决方案。

故事: 我实现了一个将 javax.smartcardio 用于 ATR 的 Applet,它运行良好,没有任何问题!此小程序必须将收集的信息“传输”到使用 javascript 的网页(在此页面的脚本内),我选择以 json 格式传递信息并为此选择 Gson... 在 IDE 中运行小程序这有效美好的!!!在浏览器中运行(本地 IIS 7.5 服务器)这不起作用,显示错误:“未捕获的错误:java.lang.InvocationTargetException”。

我第一次看到 IIS 日志显示以下行: 2014-01-14 02:42:35 127.0.0.1 获取 /com/google/gson/Gson.class - 80 - 127.0.0.1 Mozilla/4.0+(Windows+7+6.1)+Java/1.7.0_45 404 0 2 2

查看 JAR 文件的内容,我可以看到缺少的 gson jar 文件...

我发现应该把文件放到项目的WEB-INF\lib目录下,它不存在,Deployment Assembly也不存在……为了解决这个问题,我改变了Project Facet(添加动态Web模块)。

现在有一个文件夹:WebContent\WEB-INF\lib 我从资源管理器窗口 Gson 复制并粘贴了三个文件... 我在 deplyment Assembly 中添加了文件,现在它们在导出的 JAR 文件中,但同样的错误不断发生。

注意:不存在安全问题,小程序已签名,在删除 gson 函数和我的方法直接返回 ATR 代码(字符串)后,小程序可以正常工作。

任何一步一步的教程来“安装”它???

提前致谢!

屏幕图像:

正在恢复

小程序工作正常,所有功能都工作,除了使用 GSON 的功能......在我的本地服务器(IIS 7.5)中,我创建了一个站点,并在这个站点内放置了文件: MyApplet.jar ; \scrits\Myscript.js de MyApplet.jar 文件里面存在很多文件 .class ; .classpath ;项目和两个文件夹(META-INF 和 WebContent 以及 WEB-INF\lib 和 GSON jar 文件,三个)。问题是:在使用 GSON 执行函数时会引发错误,在 IIS 日志中我看到 /com/google/gson/Gson.class 的 404

Applet Jar 内容

>C:\inetpub\wwwroot\Sistemas\BryDiscover>"C:\Program Files\Java\jdk1.7.0_45\bin\jar.exe" -
>tvf Bry.Discover.jar
>>"1636 Wed Jan 15 15:33:10 BRST 2014 META-INF/MANIFEST.MF"
>>"1841 Wed Jan 15 15:33:10 BRST 2014 META-INF/PABLOERN.SF"
>>"1207 Wed Jan 15 15:33:10 BRST 2014 META-INF/PABLOERN.DSA"
>>>"415 Tue Jan 14 14:24:56 BRST 2014 .classpath"
>>"1742 Tue Jan 14 00:39:04 BRST 2014 SmartCardInfoList.class"
>>"1418 Tue Jan 14 00:39:04 BRST 2014 SmartCardInfo.class"
>>>"925 Wed Jan 15 15:32:28 BRST 2014 BryDiscover$1.class"
>>>"927 Wed Jan 15 15:32:28 BRST 2014 BryDiscover$2.class"
>>>"921 Wed Jan 15 15:32:28 BRST 2014 BryDiscover$3.class"
>>>"917 Wed Jan 15 15:32:28 BRST 2014 BryDiscover$4.class"
>>>"923 Wed Jan 15 15:32:28 BRST 2014 BryDiscover$5.class"
>>>"917 Wed Jan 15 15:32:28 BRST 2014 BryDiscover$6.class"
>>"1027 Wed Jan 15 15:32:28 BRST 2014 BryDiscover$7.class"
>>"1419 Wed Jan 15 15:32:28 BRST 2014 BryDiscover$8.class"
>>"8905 Wed Jan 15 15:32:28 BRST 2014 BryDiscover.class"
>>"1045 Tue Jan 14 00:35:40 BRST 2014 .project"
>>>>"39 Tue Jan 14 00:35:38 BRST 2014 WebContent/META-INF/MANIFEST.MF"
"249351 Tue Jan 14 00:37:22 BRST 2014 WebContent/WEB-INF/lib/gson-2.2.4-javadoc.jar"
"127564 Tue Jan 14 00:37:22 BRST 2014 WebContent/WEB-INF/lib/gson-2.2.4-sources.jar"
"190418 Tue Jan 14 00:37:22 BRST 2014 WebContent/WEB-INF/lib/gson-2.2.4.jar"

【问题讨论】:

    标签: java eclipse applet gson invocationtargetexception


    【解决方案1】:

    WebContent\WEB-INF\lib

    尝试从那里获取您的小程序,在浏览器地址栏中使用直接获取,以发现“不允许”错误(我认为它们是 500 范围内的响应代码)。

    如果无法直接获取,Java Plug-In 也无法访问。

    需要将小程序移动到浏览器/插件可访问的WEB-INF 目录结构之外的位置。

    Jar 命令的输出

    ..
    190418 Tue Jan 14 00:37:22 BRST 2014 WebContent/WEB-INF/lib/gson-2.2.4.jar
    

    标准的类加载器不是为使用“Jar inside a Jar”而设计的。有必要执行以下任一操作:

    • 提取 Jar 并将 内容 添加到主 Jar。
    • applet 元素的archive 属性中单独列出gson-2.2.4.jar Jar(并且没有在另一个Jar 中)。

    【讨论】:

    • 您好安德鲁,感谢您的回答!不太明白你说的什么...但是我尝试通过浏览器访问小程序并且浏览器尝试下载。我认为没有解释自己和/或写得不好。小程序工作正常,所有功能都工作,除了使用 GSON 的功能......在我的本地服务器(IIS 7.5)中,我创建了一个站点,并在这个站点内放置了文件:
    • 继续...文件:index.html; MyApplet.jar ; \scrits\Myscript.js 在 de MyApplet.jar 里面存在很多文件 .class ; .classpath ;项目和两个文件夹(META-INF 和 WebContent 以及 WEB-INF\lib 和 GSON jar 文件,三个)。
    • 问题是:在使用 GSON 执行函数时会引发错误,在 IIS 日志中我看到 /com/google/gson/Gson.class 的 404
    • “但我尝试通过浏览器访问小程序,浏览器尝试下载。” 是使用基于file: 的URL 还是本地服务器?粘贴使用的确切网址,我可以告诉..
    • 它在本地服务器上工作...我更改了插入 local.home.com 的主机文件并使用 local.home.com 访问该站点。对于这种情况,我写 local.home.com/MyApplet.jar 并且浏览器尝试下载。根据我的印象,我需要通知小程序(jar 配置?)以访问主 jar(小程序)内的 gson jar 文件。如果可能的话,我会将文件放在亚马逊服务器上进行测试。