Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
主机名别名对Java小程序缓存有什么影响?_Java_Applet - Fatal编程技术网

主机名别名对Java小程序缓存有什么影响?

主机名别名对Java小程序缓存有什么影响?,java,applet,Java,Applet,我有两台主机名为comp1和comp2的服务器。我还有一个浮动别名(master),动态映射到两台服务器之一。我从两台服务器提供相同的applet。客户端通常连接到masterone,但完全可以直接连接到comp1或comp2 客户端抱怨他们总是要等待小程序加载(它相当大)。我认为,一旦客户端下载了必要的jar,它们就会被缓存,不再被加载。起初我以为客户端的插件被设置为不缓存,但我想我已经找到了问题的原因,尽管我不理解它 第一次将客户端连接到主机(当前指向comp1)。必须等待JAR下载。这是意

我有两台主机名为
comp1
comp2
的服务器。我还有一个浮动别名(
master
),动态映射到两台服务器之一。我从两台服务器提供相同的applet。客户端通常连接到
master
one,但完全可以直接连接到
comp1
comp2

客户端抱怨他们总是要等待小程序加载(它相当大)。我认为,一旦客户端下载了必要的jar,它们就会被缓存,不再被加载。起初我以为客户端的插件被设置为不缓存,但我想我已经找到了问题的原因,尽管我不理解它

  • 第一次将客户端连接到
    主机(当前指向
    comp1
    )。必须等待JAR下载。这是意料之中的
  • 再次将客户端连接到
    master
    。我不必等待JAR下载。这也是预期/期望的行为
  • 将客户端连接到
    comp1
    。必须等待JAR下载。我不希望发生这种情况,因为它是同一台服务器,但我可以理解为什么,
    comp1
    在客户端看来是一台完全不同的主机
  • 将客户端连接回
    主机
    。同样,我必须等待所有jar下载这不是我所期望的。JAR应该已经在步骤1/2中下载了
  • 使用Java控制面板,我可以看到缓存中的资源。在我看来,这些资源是由URL键控的,所以我不知道为什么我会得到我所做的。似乎同一台服务器的两个不同主机名正在弄乱客户端的缓存

    我应该提到,
    master
    主机名不仅仅是一个DNS别名。在应用程序运行时,
    comp1/comp2
    动态绑定/解除绑定到的是一个实际不同的IP地址


    你能解释一下我在这里看到了什么,或者建议一些调查途径吗?

    调查途径:

    这很可能是jar文件名的结果-例如,如果总是将其下载到%TMP%\app.jar中,则每次访问服务器时,app.jar都会被踩踏

    可能的解决方法:

    • 在服务器上为该文件添加别名,因此可以将其作为master.jar、compN.jar获取
    • 使用301或302向浏览器提示仅使用一个源jar(由于同源策略,您可能需要对jar进行签名)

    (2011年的Applets?.Geeez…)通往yamburg的路-我知道。说来话长……这个问题很有趣。我怀疑这与安全性有关。@wolcastle:小程序太大了吗?可能是由于大小的原因,小程序被刷新了(但由于某种原因,URL仍然显示在控制面板中?)。如果在“控制面板”中为缓存指定了更大的大小,您是否仍观察到此行为?此外,您可能会检查服务器在IfModified查询中是否做了正确的事情,即修改日期和类似的事情是否正确。