2

首先我想说我是 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 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复制并粘贴了三个文件......我在deplyment Assembly中添加了这些文件,现在它们在导出的JAR文件中,但同样的错误不断发生.

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

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

提前致谢!

屏幕图像:

在此处输入图像描述

恢复

小程序工作正常,所有功能都工作,除了使用 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

小程序 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"
4

1 回答 1

0

网页内容\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 inside a Jar”而设计的。有必要执行以下任一操作:

  • 提取 Jar 并将内容添加到主 Jar。
  • 在元素的属性中单独列出gson-2.2.4.jarJar (而不是在另一个 Jar 中)。archiveapplet
于 2014-01-16T03:47:02.940 回答