动态生成JNLP

我需要动态地将参数传递给JNLP,我尝试使用扩展JnlpDownloadServlet的servlet然后包含一个将所有JNLP XML写入其中的jsp。

但是当我调用下载的JNLP时,我得到了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

用于转储动态JNLP:

  <jnlp spec="1.0+" codebase= href="test.jnlp">  Demo Sun Microsystems, Inc.               

我无法在下载的JNLP中看到正确接收请求参数,但上面的request.getSchemerequest.getServerName似乎工作正常。 由于没有正确接收参数值,当JNLP尝试执行时,我得到BadFieldException

怎么解决这个?

从逻辑上讲, href="test.jnlp"应该类似于href="test.jnlp?arg1=blah&arg2=tah"

AFAIU JWS客户端将使用JNLP中声明的确切coodebase / href返回服务器。

另外,一定要听听最好的话。

也许旧有用但我实际上修补了Sun servlet代码。 有一个类JnlpFileHandler,其中实际的替换完成….只是说… ;-)如果有人有兴趣我可以给你代码包括一点解释。 我并没有浪费太多的东西,但我只能说,我真的希望SUN的其余代码写得更加尊重OO原则……