【发布时间】:2016-11-21 11:58:47
【问题描述】:
由于 Java 9 的弃用,我正在研究将现有的小程序(扩展小程序)迁移到 Java Web Start。但是,似乎大多数 Oracle 的迁移文档都在指导开发人员使用“applet-desc”标签创建新的 JNLP 并进行迁移。这是否意味着在浏览器之外启动小程序不会被弃用?
如果不是,那么推荐的方法是什么?说“重写你的小程序”并没有帮助......这是每个人都说的。并没有真正给我“如何”。
有哪些可能的迁移解决方案和示例/教程?我似乎找不到太多更新的文档,我看到了 2001 年到 2011 年之间的很多东西。似乎大多数提供示例的网站不再托管应用程序,或者它们没有正确签名。
编辑
我最重要的部分问题是:Oracle 在弃用浏览器插件时是否弃用了 Applet 类?或者,我们是否仍然可以在 JNLP 的标记中使用扩展 Applet 的类,而不会发出弃用警告?
我的小程序需要在我们的 JSP 中动态生成的用户身份验证和会话 cookie。我在网上看到this is possible。此 JWS 应用程序不能脱机使用,旨在从 HREF 启动。这仍然有效吗?
【问题讨论】:
-
根据您的小程序所做的,可能没有太多需要重写的地方。您必须编写(并阅读和理解)的是 jnlp 文件。你是正确的“在浏览器之外启动小程序不会被弃用”——这完全可以用 java web start 来完成。
-
太棒了,所以你的意思是我们仍然可以扩展 Applet,我们只需要提供 JNLP XML 标签而不是 HTML 标签?我指的是我在以下位置找到的说明:kbdeveloper.qoppa.com/?p=2404。我知道需要做更多的工作来保持我们的用户会话。我们目前有一些 CSRF cookie 可以传递。我们已经在 JSP 中加载了小程序;既然我们已经使用了 JSP,是否应该像将 content-type 更改为“application/x-java-jnlp-file”并将请求变量附加到 JNLP url 一样简单?
-
另外,如果有人可以帮助解释 jnlp.jar 和 jnlp-servlet.jar 之间的区别,那就太棒了。我不太确定要包括哪个?非常感谢您知道的任何有用的指南:)
-
您可以将其添加到问题中,但是您从哪里获得 jnlp.jar? cookie 可能有点困难,因为 java webstart 与浏览器无关(除了使用浏览器下载 jnlp 并将其扔到 javaws 脚下)。还有带有请求参数的东西 - jnlp 包含它自己的 url,因此任何请求参数都必须进入 jnlp 两次(一次用于自身的 url,一次作为 jar 的参数以产生任何效果)
-
我已经阅读了一些引用 WebStart 库的旧站点,这些库需要从 JDK 的“/samples”目录中获取并导入到服务器中;这不再是真的了吗?如果没有库,我的程序怎么会知道如何阅读 JNLP 文档?至于饼干——这是个问题。我想如果我们无法通过身份验证,应该可以让用户第二次登录;认为这是我最好的选择?
标签: java applet migration java-web-start