2012-10-12 6 views
0

JSF 페이지에 링크가 필요합니다. 이 링크를 클릭하면 Java Web Start 응용 프로그램이 시작됩니다. 응용 프로그램은 현재 페이지에 전혀 영향을주지 않습니다. 응용 프로그램은 자체적으로 시작됩니다.JSF에서 동적으로 응답을 생성하십시오.

문제는 Java Web Start 애플리케이션을 시작하는 JNLP 파일을 즉시 생성해야한다는 것입니다. 기본적으로 응용 프로그램의 상태에 따라 JNLP 파일의 응용 프로그램과 매개 변수를 결정합니다.

누구든지이 작업을 수행 할 수있는 방법을 알고 있습니다. 링크를 클릭하고 현재 페이지에 영향을주지 않으면 서 동적으로 생성 된 JNLP 파일을 간단하게 실행할 수 있습니까?

답변

2

(특정) 파일 유형 (jnlp)에 대한 요청을 캡처하는 서블릿을 가질 수 있습니다.

클릭 한 링크에 대한 응답으로 제공되는 jsp 파일과 함께 JnlpDownloadServlet을 확장했습니다. jnlp 파일이 응용 프로그램의 실행 동안 한 번 이상 다운로드 할 수로

http://docs.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/downloadservletguide.html

상태는 codebase 속성과 함께 HTTP GET 매개 변수를 사용하여 보존되어야한다. 따라서 국가를 보존하는 유일한 방법은이 방법으로 그것을하는 것입니다.

이 예제의 상태는 username과 clienttoken입니다. 이것은 사용하고있는 jsp 파일의 일부입니다.

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase=<%=request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ request.getContextPath() + "/" %> href="jnlpfile.jnlp&#063;username=<%=request.getParameter("username")%>&clienttoken=<%=request.getParameter("clienttoken")%>"> 
    <information> 
      <title>title</title> 
      <vendor>vendor</vendor> 
      <description kind="short">short desc</description> 
      <icon href="resources/images/icon.jpg" kind="default"/> 
    </information> 
    <security> 
     <all-permissions/> 
    </security> 
    <resources> 
      <java version="1.7+" java-vm-args="-ea" initial-heap-size="128m" max-heap-size="512m" /> 
      <jar download="eager" href="test.jar"/> 
    </resources> 
    <application-desc main-class="test.MainClass"> 
     <argument><%=request.getServerName()%></argument> 
     <argument><%=request.getParameter("username")%></argument> 
     <argument><%=request.getParameter("clienttoken")%></argument> 
    </application-desc> 
    <update check="background"/> 
</jnlp> 
관련 문제