applet中的cxf客户端导致许多重复加载jar

时间:2011-10-19 09:44:08

标签: applet cxf

我有一个带有applet的Web应用程序,可以访问cxf ws服务器。 当我初始化到cxf ws的连接时,有很多脏消息(大约1000行,并且花费大约2分钟来初始化),例如:

network: Connecting \http://localhost:8080/WebUI/DYVCenterVNCClient.jar with proxy=DIRECT 
network: Connecting \http://localhost:8080/WebUI/DYVCenterVNCClient.jar and cookie "JSESSIONID=F7DF490E4E7137857494B453667A079E"
network: Connecting \http://localhost:8080/WebUI/DYVCenterVNCClient.jar with proxy=DIRECT 
network: Connecting \http://localhost:8080/WebUI/DYVCenterVNCClient.jar and cookie "JSESSIONID=F7DF490E4E7137857494B453667A079E"

html applet配置为:

<object type="application/x-java-applet"
        name="TestApplet" width="446" height="291">
    <param name="codebase" value="." />
    <param name="code" value="com.vnc.CompatibilityApplet" />
    <param name="archive" value="DYVCenterVNCClient.jar" />
    <PARAM NAME="cache_archive" VALUE="DYVCenterVNCClient.jar">
    <PARAM NAME="cache_version" VALUE="0.0.0.1">
    <PARAM name="codebase_lookup" value="false">
    <param name="scriptable" value="true" />
    <param name="mayscript" value="true" />
    <param name="background-color" value="#ffffff" />
    <param name="border-color" value="#8c8cad" />
</object>

我在调用cxf类ClientProxyFactoryBean的方法create()时发现这些消息被打印出来。

所以如何解决这些问题,我也googing并发现链接的类似问题: http://cxf.547215.n5.nabble.com/CXF-based-applet-initialization-worries-td550944.html 但没有答案

谢谢大家。

1 个答案:

答案 0 :(得分:0)

好吧,最后我发现了这个网址 Applet downloading server copy of jars already cached告诉我们URLConnection的{​​{1}}已更新为false 因此,即使插件本身设置为“使用缓存”,defaultUsecaches也不会使用缓存。

我在cxf src中搜索方法urlconnection,最后我发现JDKBugHacks的方法setDefaultUseCaches(false)会将defaultUseCache设置为false。似乎jdk的错误让我感到困惑。

最后我通过在新doHacks()之后更改defaultUsecaches来解决我的问题。

ClientProxyFactoryBean