JNLP dynamisch generieren
Ich muss das Argument dynamisch an JNLP übergeben, für das ich versucht habe, ein Servlet zu verwenden, das erweitert wirdJnlpDownloadServlet
und enthält dann einen JSP, in den das gesamte JNLP-XML geschrieben ist.
Aber wenn ich das heruntergeladene JNLP aufrufe, bekomme ichBadFieldException
.
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.jspVerwendet für das Dumping von dynamischem 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>
Ich kann nicht sehen, dass die Anforderungsparameter im heruntergeladenen JNLP korrekt empfangen wurden, aber die oben genanntenrequest.getScheme
undrequest.getServerName
scheinen gut zu funktionieren. Weil der Argumentwert nicht richtig empfangen wurde, bekomme ichBadFieldException
wenn JNLP versucht auszuführen.
Wie kann man das lösen?