JnlpDownloadServlet
sampleを使用して、WebアプリケーションからJNLPを起動することをお薦めします。JnlpDownloadServletクラスを使用しないJNLPの起動
何らかの理由で、私はそれを使用することができず、自分でJNLPを起動する必要があります。
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);
}
getJNLP
はString
として全体のJNLPファイルを返すメソッドです。
これは私が(それを起動するサーブレット)が出ているものです。
これはうまくいくようです。しかし、私は何かが欠けている。追加ヘッダーなどが設定されていますか?
更新:私はJnlpDownloadServletを使用していない理由は、2つの異なるWebアプリケーションからこのJNLPを起動する必要があるからです - Javaの1つである& DOTNETです。私は明らかにDOTNET webappからJnlpDownloadServletを使用することはできません。私はJNLPを起動するためにDOTNETアプリケーションに(上記と同様の)同様のコードを書いています。だから私はちょうどそれもJavaアプリケーションで同じにしておきます。
この質問は広いです。コードレビューサービスではありません。何か間違いはありますか? – xenteros
この作業では、クライアントに有効なjnlp-Fileを渡すだけです。したがって、生成されたjnlp-fileへの静的リンクも機能するはずです。 jnlp-Fileまたはversions.xmlの世代について何も追加していないので、何かを忘れてしまったと言います。 – Turo
@Turo jnlpファイルは静的ではありません。実行時に 'getJNLP'メソッドによって生成されます。 – user93353