我在我的应用程序中成功签名并部署了一个applet。
我有一个index.html
,如果我拨打/myApp
但是,如果我尝试从servlet转发到index.html
,我会收到ClassNotFoundException
。
以下是加载applet的代码。所有这些jar都在WebContent文件夹中。
<applet code="com.griaule.grFingerSample.FormMain"
archive="fingerAssinado.jar,SignedGrFingerJavaAppletSampleAssinado.jar,postgresql-8.4-701.jdbc4Assinado.jar"
</applet>
我做错了什么?
答案 0 :(得分:1)
HTML archive
元素的<applet>
属性中的任何相对路径都与当前请求URL(客户端在浏览器的地址栏中看到的URL)相关,而不是相对于物理服务器的磁盘文件系统位置负责生成HTML输出的JSP文件,正如许多初学者错误地认为的那样。
因此,如果您将相对路径修复为相对于当前请求URL正确,那么它应该可以正常工作。如有必要,您可以使用${pageContext.request.contextPath}
动态打印当前上下文路径。
<c:set var="root" value="${pageContext.request.contextPath}" />
<applet ... archive="${root}/fingerAssinado.jar, ..." />
这样你可以使它相对于域根目录。