2012-04-03 3 views
1

Java-Applet 기반 웹 응용 프로그램 중 하나에서 성능이 저하되었습니다. 그래서 우리는 JNLP 개념을 구현하여 애플릿로드를 향상 시켰습니다. 서버에서 파일이 변경 되더라도 JNLP 파일은 항상 캐시에서 다운로드됩니다.

JAR 파일

처음 클라이언트 컴퓨터에 다운로드되고 서버에서 애플릿 버전이 캐시에 애플릿 버전과 일치하는 경우 로컬

를 캐시됩니다 JNLP 당으로

,의 애플릿 대신 다운로드되지 않습니다 서버 측에서 JAR 버전에 변경이있는 경우가 캐시

에서로드됩니다, 캐시에 이전 JAR은 새로운 JAR

그러나으로 대체됩니다 우리의응용 프로그램에서 예상대로 작동하지 않습니다. 우리는 jnlp 파일 자체가 캐시에서오고 있기 때문에 이전 Jar 버전을 포함하고 있음을 발견했습니다.

jnlp 파일 만 브라우저를 열 때마다 새로 다운로드해야하는 방법이 있습니까? 또는이 문제를 해결하기위한 대체 방법이 있습니까?

어떤 도움을 주셔서 감사합니다!

JNLP 파일

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="" href="" version="2.0.0.0"> 
    <information> 
     <title>Active Viewer</title> 
     <vendor>Platts</vendor> 
     <offline-allowed/> 
    </information> 
    <resources> 
     <j2se version="1.6+" 
       href="http://java.sun.com/products/autodl/j2se"/> 
     <jar href="EWSApplet.jar" main="true" version="9.3.5.0" /> 
     <property name="jnlp.versionEnabled" value="true"/> 
    </resources> 
    <applet-desc name="EWSApplet" 
       main-class="com.mycompany.ew.applet.EWS_Config.EWS_Config.class" 
       width="1" 
       height="1"> 
    </applet-desc> 
    <update check="background" policy="always"/> 
</jnlp> 

답변

2

당신은 당신의 브라우저에서 바로 만료 JNLP 파일을 설정을 시도 할 수 있습니다, 즉 no-cache 프라그 등 (일반적으로 당신이 필요로하는, 그것은 expires, cache-control처럼 해당 헤더를 설정 다운로드 할 때 모든 다른 브라우저에 대해 여러 가지).

1

내가 웹 서버의 일종에서 jnlp 파일을 다운로드한다고하니? 그렇다면 jnlp에 링크 된 웹 사이트를 더 가까이서보아야합니다. 아마도 foobar.jnlp? version = xx.yy.zz과 같은 것을 추가하는 것이 도움이 될 수 있습니다. ? version = xx.yy.zz은 서버에 의해 GET 매개 변수로 처리되므로 (따라서 파일 선택시 무시됩니다) 캐싱하는 동안 브라우저에서 무시하지 않습니다.

인사말

관련 문제