Running JNLP without using the JnlpDownloadServlet class

Oracle recommends using a sample JnlpDownloadServletto run JNLP from a web application.

For some reason, I can’t use it and I have to encode my JNLP launch myself.

This is what I came up with (Servlet that runs it):

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException 
{
    performTask(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException 
{
    performTask(request, response);
}

private void performTask(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException 
{
    response.setContentType("application/x-java-jnlp-file");
    byte [] b = getJNLP(..some params..).getBytes();

    response.setContentLength((int) b.length);
    OutputStream responseOutputStream = response.getOutputStream();
    responseOutputStream.write(b);
}

getJNLPis a method that returns the entire JNLP file as String.

It seems to be working fine. But I don’t miss anything. Are there any additional headers, etc.?

UPDATE: , JnlpDownloadServlet, , JNLP webapps - Java-1 DOTNET. , , JnlpDownloadServlet DOTNET webapp. ( ) DOTNET, JNLP. Java.

+4
2

, .

: Jnlp-Download-Service href, , WebStart (dev, qa, prod). , :

<?xml version='1.0' encoding='UTF-8'?>
<jnlp spec='7.0' href='$$name' version='2.5-null' codebase='$$codebase'>
  <information>...

, JnlpDownloadServlet.

, : https://docs.oracle.com/javase/8/docs/technotes/guides/javaws/developersguide/downloadservletguide.html#substitutions

WebStart , JnlpDownloadServlet. WebStart - . jnlp Windows, - .

: c:\tmp\webstartdemo

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="file:///C:/tmp/webstartdemo">
    <resources>
        <j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="SwingGui.jar" main="true" />
    </resources>
    <application-desc name="Demo" main-class="Demo"/>
</jnlp>

-SwingGui.jar :

public class Demo {
  public static void main(String... args){
      javax.swing.JOptionPane.showMessageDialog(null, "Hello World");
   }
}

:

javaws c:\tmp\webstartdemo\demo.jnlp

, jnlp -, . , .

+1

, .

, , , . , - WebStart-.

0

Source: https://habr.com/ru/post/1650286/


All Articles