Oracle recommande d'utiliser le JnlpDownloadServlet
sample pour lancer JNLP à partir d'une application Web.Lancement de JNLP sans utiliser la classe JnlpDownloadServlet
Pour quelque raison que ce soit, je suis incapable de l'utiliser et dois coder mon propre lancement JNLP.
C'est ce que je suis venu avec (Servlet qui le lance):
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
est une méthode qui retourne l'ensemble du fichier JNLP comme String
.
Cela semble fonctionner correctement. Mais est-ce que je manque quelque chose? Y a-t-il des en-têtes supplémentaires à définir? MISE À JOUR: La raison pour laquelle je n'utilise pas JnlpDownloadServlet est parce que, je dois lancer ce JNLP à partir de 2 webapps différents - un Java un & un DOTNET. Je ne peux évidemment pas utiliser JnlpDownloadServlet depuis la webapp DOTNET. J'ai écrit un code similaire (comme ci-dessus) dans l'application DOTNET pour lancer le JNLP. Donc, je garde juste la même chose dans l'application Java aussi.
Cette question est de trop. Ce n'est pas un service de révision de code. Avez-vous des erreurs? – xenteros
La tâche est simplement de donner au client un fichier jnlp valide, donc je pense qu'un lien statique vers le fichier jnlp généré devrait aussi fonctionner. Comme vous n'avez rien ajouté à propos de la génération du fichier jnlp ou du fichier versions.xml, il est difficile de dire si vous avez oublié quelque chose. – Turo
@Turo Le fichier jnlp n'est pas statique - il est généré lors de l'exécution par la méthode 'getJNLP'. – user93353