0

平台:Win7 32bit、Netbeans 7.1.2、JDK 7、JRE 1.7.0_05。

Web 服务器:Ubuntu/Apache 和 Windows Server 2008/IIS 7。

我有一个大型 Java Web 小程序,在运行本地文件系统时运行良好,但在运行时失败http(两台服务器都经过测试)。我使用过 APPLET、OBJECT 和 deployJava.js。我一开始只是一个 APPLET,但现在我使用的是 Jave Web Start。

Experimentaion 表明,该问题仅发生在大约 34k 或更大的 JAR 中。当前版本使用通过 APPLET 标记调用的 JWS Applet。

所有 JARS 都已签名。

启用了 JAVA 缓存(以规避错误的“代码未签名”错误),但我在每次测试时清除了缓存网络。

HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Test page for launching the applet via JNLP</title>
    </head>
    <body>
        <h3>Test page for launching the applet via JNLP</h3>
        <applet width="300" height="300">
            <param name="jnlp_href" value="launch.jnlp"/>
        </applet>
    </body>
</html>

JNLP:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp href="launch.jnlp" spec="1.0+">
    <information>
        <title>cleverAUDIO</title>
        <vendor>ChrisSpray</vendor>
        <homepage href=""/>
        <description>cleverAUDIO</description>
        <description kind="short">cleverAUDIO</description>
    </information>
    <update check="always"/>
    <security>
        <all-permissions/>
</security>
    <resources>
        <j2se java-vm-args="-Djava.security.policy=applet.policy" version="1.7+"/>
        <jar href="cleverAUDIO.jar" main="true"/>
    <jar download="lazy" href="lib/cleverDEBUG.jar"/>
    <jar download="lazy" href="lib/cleverWINDOWS.jar"/>
    <jar download="lazy" href="lib/cleverWinMMDevice.jar"/>
    <jar download="lazy" href="lib/platform.jar"/>
    <jar download="lazy" href="lib/jna.jar"/>
</resources>
    <applet-desc height="300" main-class="uk.co.cleverit.cleverAUDIO.applet" name="cleverAUDIO" width="300">
    </applet-desc>
</jnlp>

通过本地文件系统调用时的完整 Java 日志在此处以及通过HTTP 此处调用时。

部分文件日志:

network: ResponseCode for file:/N:/cleverAUDIO/dist/cleverAUDIO.jar : 200
network: Encoding for file:/N:/cleverAUDIO/dist/cleverAUDIO.jar : null
network: Sever response: (length: 62791, lastModified: Fri Aug 03 14:51:01 BST 2012, downloadVersion: null, mimeType: application/x-java-archive)
network: CleanupThread used 6 us
preloader: Added pending event 2: DownloadEvent[type=load,loaded=0, total=62791, percent=0]
network: Downloading resource: file:/N:/cleverAUDIO/dist/cleverAUDIO.jar
Content-Length: 62,791
Content-Encoding: null
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 7, availableHeapKB: 248528, appletThreads: 6 }
preloader: Using preloader class: null  com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter@1737e47
preloader: Using default preloader
preloader: Requested to use preloader class: null
preloader: Delivering: ConfigEvent[type=SetVisible, value=true]
preloader: Delivering: DownloadEvent[type=load,loaded=0, total=62791, percent=1]
preloader: Skipped all (0) download events prior to DownloadEvent[type=load,loaded=0, total=62791, percent=1]
preloader: Preloader jars loaded. Error state=null
security: Staring warmup validation
preloader: Start progressCheck thread
preloader: GrayBox: parent = sun.plugin2.main.client.PluginEmbeddedFrame[frame0,0,0,300x300,layout=java.awt.BorderLayout,title=,resizable,normal]
preloader: Delivering: DownloadEvent[type=load,loaded=1005, total=62791, percent=1]
<snip>
preloader: Delivering: DownloadEvent[type=load,loaded=62791, total=62791, percent=80]
network: Wrote URL file:/N:/cleverAUDIO/dist/cleverAUDIO.jar to File C:\Users\ChrisSpray\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\39\9a4cda7-7f8c3d0f-temp

部分HTTP日志:

network: ResponseCode for http://lamp.cleverit.co.uk/includes/cleverAUDIO/cleverAUDIO.jar : 200
network: Encoding for http://lamp.cleverit.co.uk/includes/cleverAUDIO/cleverAUDIO.jar : null
network: Sever response: (length: 62791, lastModified: Fri Aug 03 15:09:41 BST 2012, downloadVersion: null, mimeType: application/java-archive)
network: CleanupThread used 6 us
preloader: Added pending event 2: DownloadEvent[type=load,loaded=0, total=62791, percent=0]
network: Downloading resource: http://lamp.cleverit.co.uk/includes/cleverAUDIO/cleverAUDIO.jar
Content-Length: 62,791
Content-Encoding: null
preloader: Added pending event 3: DownloadEvent[type=load,loaded=1005, total=62791, percent=1]
<snip>
preloader: Added pending event 32: DownloadEvent[type=load,loaded=34440, total=62791, percent=43]
cache: MemoryCache: removed entry http://lamp.cleverit.co.uk/includes/cleverAUDIO/launch.jnlp
preloader: Using preloader class: null com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter@60acdc
preloader: Using default preloader
preloader: Requested to use preloader class: null
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 6, availableHeapKB: 250928, appletThreads: 6 }
preloader: Delivering: ConfigEvent[type=SetVisible, value=true]
preloader: Delivering: DownloadEvent[type=load,loaded=34440, total=62791, percent=1]
preloader: Skipped all (30) download events prior to DownloadEvent[type=load,loaded=34440, total=62791, percent=1]
preloader: Preloader jars loaded. Error state=null
security: Staring warmup validation
preloader: Start progressCheck thread
preloader: GrayBox: parent = sun.plugin2.main.client.PluginEmbeddedFrame[frame0,0,0,300x300,layout=java.awt.BorderLayout,title=,resizable,normal]
JVM[id=1]-Heartbeat round-trip heartbeat took 1003640 microsecs.
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 8, availableHeapKB: 249559, appletThreads: 8 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1006503 microsecs.
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 10, availableHeapKB: 250558, appletThreads: 8 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1005683 microsecs.
preloader: Stop progressCheck thread

如您所见,处理在 34440 字节后停止,但 JAR 的长度为 62791 字节!

任何地方都不会产生错误或异常(我可以看到)。

我在这个问题上花了一个星期的时间,除了增加我的知识外,尽管尝试了许多变化,但我没有得到任何结果。有人有什么好主意吗?

非常感谢期待

克里斯

4

0 回答 0