我是新来的,我为我糟糕的英语道歉。
我对Java Web Start技术提供的Applet类有一点小问题。我有一些与平台相关的JAR文件,Web Start可以正确下载,但当我通过ClassLoader
对象的getResourceAsStream(String fileName)
方法获取内容时,首先向WEB服务器发出fileName
的get请求,在收到404 Not Found
响应后,资源从JAR文件中正确加载。问题是我在JAR中有很多文件,所以我在WEB服务器上有很多不必要的负载,因此我必须等待很长一段时间才能使用Applet。
在谷歌上搜索,我找到了一些讨论,据说添加了值为false
的参数codebase_lookup
,但这并没有解决问题。与codebase_lookup
参数相关的This page表示,小程序的默认行为是从JAR文件加载资源,然后从小程序代码库加载资源,在我的例子中,情况正好相反。
我还为.jnlp
文件中的每个JAR资源添加了eager="true"
属性,但行为总是相同的。小程序是用NetBeans开发和构建的,生成的html和jnlp文件如下所示。
launch.html
<applet width="300" height="300">
<param name="jnlp_href" value="launch.jnlp"/>
<param name="codebase_lookup" value="false"/>
</applet>
launch.jnlp
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://192.168.23.4/contact" href="launch.jnlp" spec="1.0+">
<information>
<title>ContactNR</title>
<vendor>Roberto Santini</vendor>
<homepage href=""/>
<description>ContactNR</description>
<description kind="short">ContactNR</description>
</information>
<resources>
<j2se version="1.5+"/>
<jar eager="true" href="ContactNR.jar" main="true"/>
<jar eager="true" href="lib/VDK.jar"/>
<security>
<all-permissions/>
</security>
</resources>
<resources arch="amd64" os="Linux">
<jar eager="true" href="lib/liblinux64.jar"/>
</resources>
<resources arch="x86_64" os="Linux">
<jar eager="true" href="lib/liblinux64.jar"/>
</resources>
<resources arch="x86" os="Linux">
<jar eager="true" href="lib/liblinux.jar"/>
</resources>
<resources arch="i386" os="Linux">
<jar eager="true" href="lib/liblinux.jar"/>
</resources>
<resources os="Windows">
<jar eager="true" href="lib/libwin.jar"/>
</resources>
<resources os="MacOs">
<jar eager="true" href="lib/libmac.jar"/>
</resources>
<applet-desc height="300" main-class="com.netresults.voip.ContactNR" name="ContactNR" width="300">
<param name="codebase_lookup" value="false"/>
</applet-desc>
</jnlp>
有人能帮我吗?非常感谢,
罗伯托。
发布于 2013-11-25 17:41:09
我通过向JAR文件添加索引解决了这个问题。在构建jar之后,运行以下命令:
JAR -i <path/to/jar-file>
它必须作为独立于实际JAR的步骤运行。
说明:当启动进程遇到META-INF中的INDEX.LIST时,它会信任它,并且不会在服务器上查找文件。
发布于 2011-03-05 19:13:29
我最近遇到了一个类似的问题,那就是log4j通过GET查询丢失的资源。也许在您的案例中,基于web的类路径仍然比捆绑的jars具有更高的优先级?嗯,你可以试着把所有的罐子都装进一个罐子里。这当然会使构建变得复杂,但您可以手动尝试一次,看看问题是否消失了。
https://stackoverflow.com/questions/2340969
复制相似问题