2012-10-28 66 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的重定向。如果可能,请尝试使用绝对网址,至少要对其进行测试。

相关问题