2012-10-28 69 views
1

對不起我的英語。將Applet集成到Spring Web應用程序

我有一個問題,我找不到任何解決方案。我有一個春季Web應用程序,即時嘗試將一個小程序集成到一個jsp頁面。

這裏是我稱之爲小程序的代碼。

<object type="application/x-java-applet;version=1.6" width="200" height="200" title="Java"><param name="code" value="cl.facele.sign.applet.WebSignApplet.class"> 
    <param name="archive" value="/frontend-1.4/lib/fea-signer-0.94.jar, /frontend-1.4/lib/httpcore-4.0.1.jar, /frontend-1.4/lib/httpmime-4.0.jar, /frontend-1.4/lib/apache-mime4j-0.6.jar, /frontend-1.4/lib/commons-codec-1.3.jar, /frontend-1.4/lib/httpclient-4.0.jar, /frontend-1.4/lib/commons-logging-1.1.1.jar"><param name="XML_IDS" value="{xmlIds}"> 
    <param name="DOCS_IDS" value="{docsIds}"><param name="WS_URL_SERVER" value="http://localhost:8080/efactoryapp"> 
    <param name="WS_GET_DOC_METHOD" value="/services.htm?faction=getDocument&amp;id="> 
    <param name="WS_POST_DOC_METHOD" value="/services.htm?  faction=addDocumentDeclarado"> 
    <param name="urlRefreshTarget" value="">Para utilizar la componente de firma electrónica debe instalar plugin <a href="http://java.sun.com/update/1.6.0/jinstall-6u22-windows-i586.cab">Java v.1.6</a> 
    </object> 

當jsp頁面加載時,JVM控制檯向我顯示此錯誤。

java.lang.ClassFormatError: Incompatible magic value 218762506 in class file cl/facele/sign/applet/WebSignApplet 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(Unknown Source) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) 
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) 
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
    Excepción: java.lang.ClassFormatError: Incompatible magic value 218762506 in class file cl/facele/sign/applet/WebSignApplet 
    java.lang.ClassFormatError: Incompatible magic value 218762506 in class file   cl/facele/sign/applet/WebSignApplet 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(Unknown Source) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) 
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) 
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
    Excepción: java.lang.ClassFormatError: Incompatible magic value 218762506 in class file cl/facele/sign/applet/WebSignApplet 

謝謝任何​​幫助!

UPDATE:

如果這種幫助,即時實現我的申請,我的小程序,用eclipse和tomcat。

回答

1

最可能的原因是您的Web應用程序實際上並不像您想象的那樣提供jar文件。嘗試使用您的網絡瀏覽器打開這些URL,或者使用curl或wget,並查看您獲得的內容。我猜測結果是一個html格式的錯誤消息,而不是jar文件。

有一個全面的解釋here

其他的,不太可能的可能性是小程序用的Java虛擬機比一個正試圖運行它更晚的版本編譯。

+0

灰謝謝您的回答。我可以通過我的網絡瀏覽器訪問我的jar文件。示例: http:// localhost:8080/frontend-1.4/lib/fea-signer-0.94.jar 關於applet,這是使用與嘗試運行它相同版本的JVM編譯的。我無法找到解決方案,但再次感謝您的幫助。 –

+1

你檢查了所有3罐嗎? – GreyBeardedGeek

0

>這應該是一個高速緩存和編譯問題

嘗試從applet的Java控制檯清洗所有的小應用程序的臨時文件,重新編譯,併產生新的罐子,這應該解決的問題。我有同樣的問題,我解決了使用重新編譯,生成罐子和使用jarsigner簽署他們。

0

如果您將Java(218762506)報告的魔術值轉換爲二進制文件,可以幫助您計算出正在返回的文件類型。在這種情況下:

0000 1101 = 13 - Carriage Return 
0000 1010 = 10 - New Line 
0000 1101 = 13 - Carriage Return 
0000 1010 = 10 - New Line 

可能是文本文件的開始,甚至可能是HTML,並帶有幾行空行開始。

如果您能夠通過將瀏覽器直接指向您的標記中指定的文件來成功下載jar,那麼可能會在幕後發生跳轉JVM的重定向。如果可能,請嘗試使用絕對網址,至少要對其進行測試。

相關問題