java - 在使用 eclipse (Kepler) 实现的 Applet 中使用 GSON 的正确配置是什么

标签 java eclipse applet gson invocationtargetexception

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

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

我第一次看到 IIS 日志显示以下行: 2014-01-14 02:42:35 127.0.0.1 GET/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 复制并粘贴了三个文件...... 我在部署程序集中添加了文件,现在它们在导出的 JAR 文件中,但同样的错误不断发生。

注意:没有安全问题,applet 已签名,删除 gson 函数后我的方法直接返回 ATR 代码(字符串)applet 工作正常。

有任何“安装”它的分步教程吗???

提前致谢!

屏幕图像:

enter image description here

恢复中

小程序工作正常,所有功能都正常工作,除了使用 GSON 的功能...我的小程序.jar ;\scrits\Myscript.js 在 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"

最佳答案

WebContent \ WEB-INF \ lib

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

如果无法通过直接获取来检索它,Java 插件也无法访问它。

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

Jar 命令的输出

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

标准类加载器并非设计用于“Jar 中的 Jar”。有必要执行以下任一操作:

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

关于java - 在使用 eclipse (Kepler) 实现的 Applet 中使用 GSON 的正确配置是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21127164/

相关文章:

java - 如何为 Android 和 iOS 运行一个功能文件

Android 中的 java.lang.ExceptionInInitializerError

Eclipse错误: No source available for ""

java - 下载远程jar文件并监控下载进度

Java 扫描器不遍历整个文件

java - 来自 svg 的 getelementbyId 是 id ="' @data[]"

java - junit5如何运行测试文件夹中的所有类?

java - 从 Eclipse 解密保存的密码

java - NetBeans 不再为以前生成的代码生成 JAR 文件

java - 通过 HTTPConnection 下载大文件 - JAVA Applet