Générer dynamiquement JNLP
J'ai besoin de passer en argument à JNLP dynamiquement pour laquelle j'ai essayé d'utiliser une servlet qui s'étend JnlpDownloadServlet
et puis comprend une jsp qui a toutes les JNLP XML écrit.
Mais quand j'invoque le téléchargé JNLP-je obtenir BadFieldException
.
Servlet
public class TestServlet extends JnlpDownloadServlet {
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
res.setContentType("application/x-java-jnlp-file");
request.getRequestDispatcher("/jnlp.jsp").include(request, res);
}
jnlp.jsp
Utilisé pour le dumping dynamique JNLP:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase=<%=request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ request.getContextPath() + "/" %> href="test.jnlp">
<information>
<title>Demo</title>
<vendor>Sun Microsystems, Inc.</vendor>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="lib/test.jar" main="true" />
</resources>
<application-desc name="Dynamic Tree Demo Application" main-class="org.Test" width="300" height="300">
<argument><%=request.getParameter("arg1")%></argument>
<argument><%=request.getParameter("arg2")%></argument>
</application-desc>
<update check="background"/>
</jnlp>
Je ne peux pas voir les paramètres de la requête reçue correctement téléchargé JNLP mais la ci-dessus request.getScheme
et request.getServerName
semble fonctionner correctement. En raison de la valeur de l'argument de ne pas être reçu correctement-je obtenir BadFieldException
quand JNLP essaie d'exécuter.
Comment résoudre ce problème?
source d'informationauteur Harshdeep
Vous devez vous connecter pour publier un commentaire.
Logiquement,
href="test.jnlp"
doit être quelque chose commehref="test.jnlp?arg1=blah&arg2=tah"
.AFAIU les témoins de jéhovah client se rabattre sur le serveur en utilisant exactement les
coodebase
/href
indiqué dans le JNLP.Aussi, certainement écouter ce que bestsss a à dire.
Peut-être vieux pour être utile, mais je les ai patché le Soleil servlet code. Il existe une Classe JnlpFileHandler où les substitutions sont faites.... Juste pour dire... 😉 Si quelqu'un est intéressé, je peux vous donner le code, y compris une petite explication. Je n'ai pas de perdre trop de tima à elle, mais tout ce que je peux dire, c'est que j'espère vraiment que le reste de SOLEIL du code est écrit dans un respect plus grand pour OO principes...