[英]“ClassFormatError: Incompatible magic value” when trying to run Java jar file
[英]Incompatible magic value 1010792557 when trying to run applet embedded in Facelets
通过Glassfish服务器访问嵌入小程序的Facelets页面时,出现此错误。 尽管当我仅从计算机上打开它时,它就可以正常工作,所以小程序还可以。 是否可以在Glassfish(3.1,JSF 2.0)上运行小程序?
这是我尝试的方法:
<applet code="test.TestApplet" archive="TestApplet.jar"/>
这是ClassFormatError
的典型消息。 有效的Java类的魔术值是0xCAFEBABE
,这是前4个字节。 但是您会得到0x3C3F786D
,它表示ASCII字符<?xm
。
因此,对TestApplet.jar
的请求显然已经返回了XML文档。 在浏览器地址栏中将当前请求URI更改为指向TestApplet.jar
文件时(即,将URL末尾的/page.jsf
或/page.xhtml
更改为/TestApplet.jar
),应该可以自己看到它。 然后,您将看到浏览器尝试下载小程序时实际检索到的内容。 也许这是Facelets提供的简单HTTP 404错误文档。
要解决此问题,只需确保archive
属性中的URL是正确的。 如您在浏览器地址栏中看到的,它是相对于当前请求URL的。
终于我找到了解决方案:
如果我将小程序的jar文件放入Web应用程序的resources文件夹中,并且将归档文件的路径设置为以下内容
<applet code="test.TestApplet" archive="../resources/TestApplet.jar"/>
它工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.