簡體   English   中英

在帶有eclipse的Applet中使用GSON的正確配置是什么(Kepler)

[英]What is the correct configuration to use GSON inside a Applet implementing with eclipse (Kepler)

首先,我想說我是Java / Web開發的初學者(但是在編程和分析方面有豐富的經驗)。 我在幾個位置搜索了幾個調查,但沒有找到我認為是配置問題的解決方案。

故事:我實現了一個使用javax.smartcardio進行ATR的Applet,它工作正常,沒有任何問題! 此applet必須將收集到的信息“傳輸”到使用javascript的網頁(在此頁面的腳本內),我選擇以json格式傳遞信息,並為此選擇了Gson。...在IDE中運行applet即可精細!!! 在瀏覽器(本地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代碼(字符串),小程序運行正常。

任何分步教程來“安裝”它???

提前致謝!

屏幕圖像:

在此處輸入圖片說明

恢復

該applet正常運行,除使用GSON的功能外,所有功能均正常工作。 MyApplet.jar; \\ scrits \\ Myscript.js MyApplet.jar文件中存在許多文件.class; .classpath; 項目和兩個文件夾(META-INF和WebContent以及WEB-INF \\ lib和GSON jar文件,三個)。 問題是:在使用GSON執行功能時,它會引發錯誤,在IIS日志中,我看到404 for /com/google/gson/Gson.class

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"

Web內容\\ WEB-INF \\ lib

嘗試使用瀏覽器地址欄中的直接訪存從那里取回applet,以發現“不允許”錯誤(我認為它們是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中。
  • applet元素的archive屬性中單獨列出gson-2.2.4.jar Jar(並且不要 將其放在另一個Jar中 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM