Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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 使用JSP的动态JNLP_Java_Jsp_Jnlp - Fatal编程技术网

Java 使用JSP的动态JNLP

Java 使用JSP的动态JNLP,java,jsp,jnlp,Java,Jsp,Jnlp,我有一个JSP文件,当通过超链接调用时,它返回一个JNLP文件。但是它作为jsp(xxx.jsp而不是xxx.jnlp)文件下载,尽管内容是预期的jnlp 下面是我的JSP <% response.setHeader("Pragma", "no-cache"); response.setHeader("Expires", "0"); response.setContentType("application/x-java-jnlp-file

我有一个JSP文件,当通过超链接调用时,它返回一个JNLP文件。但是它作为jsp(xxx.jsp而不是xxx.jnlp)文件下载,尽管内容是预期的jnlp

下面是我的JSP

    <%    
      response.setHeader("Pragma", "no-cache");
      response.setHeader("Expires", "0");
      response.setContentType("application/x-java-jnlp-file");                            
      response.setHeader("Cache-Control", null);
      response.setHeader("Set-Cookie", null);
      response.setHeader("Vary", null);

      // An installer must reply with the version number for a given install
      if (response.containsHeader("x-java-jnlp-version-id"))
        response.setHeader("x-java-jnlp-version-id", "WASClient6.1.0");               
      else
        response.addHeader("x-java-jnlp-version-id", "WASClient6.1.0");
      String codeBase = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ request.getContextPath() + "/";
%>

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="<%=codeBase %>">
        <information>
                <title>XXX</title>
        </information>
        <security>
                <all-permissions/>
        </security>
        <resources>

        </resources>
        <application-desc main-class="TestApp">
        </application-desc>
</jnlp>

XXX
下面是生成的jsp

 <?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="<%=codeBase %>">
        <information>
                <title>XXX</title>
        </information>
        <security>
                <all-permissions/>
        </security>
        <resources>

        </resources>
        <application-desc main-class="TestApp">
        </application-desc>
</jnlp>

XXX
知道我做错了什么吗?
谢谢。

您确实不应该使用Scriptlet,但是如果需要,您应该从Scriptlet生成jnlp文件,然后执行response.redirect以创建jnlp文件

 ServletContext servletContext = session.getServletContext();
 String localDir = servletContext.getRealPath("").replace('\\', '/');
 File jnlp = new File(localDir + "something.jnlp");
 FileWriter fw = new FileWriter(jnlp);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(//contents of jnlp file);
 response.sendRedirect(jnlp.getName());

用便签作为快速修复。谢谢贾斯汀。