【问题标题】:Migrating to Java Web Start - Will Applet-Desc be deprecated?迁移到 Java Web Start - Applet-Desc 会被弃用吗?
【发布时间】: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 可以传递。我们已经在 J​​SP 中加载了小程序;既然我们已经使用了 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


【解决方案1】:

已弃用的事情是由浏览器制造商完成的(尽管 Oracle 意识到现在的情况建议不要开发它们)。因此,Oracle 并没有像弃用 Java 文档中偶尔提到的其他类、方法或属性那样“弃用”小程序标记 (1)。

至于使用 JWS 启动小程序,是的,这应该仍然“有效”。但请注意,虽然(例如)Chrome 过去常常将 JNLP 直接传递给注册为该文件类型的使用者的程序(其中它将传递给 JRE 中包含的 Java Web Start 客户端),但它现在会导致用户首先下载 JNLP,然后明确选择启动该文件。

  1. 更新:Oracle 可能没有弃用 applet 标签,但他们会在 Java 9 中有效地做同样的事情。来自JDK 9 and the Java Plugin

到 2015 年底,许多浏览器供应商已经取消或宣布取消基于标准的插件支持的时间表,从而消除了嵌入 Silverlight、Java、Flash 和其他基于标准的插件技术的能力。

Oracle 计划在 Java Standard Edition Development Kit 9 (JDK 9) 中弃用 Java 浏览器插件。弃用是对开发人员停止使用该技术的警告。 JRE 9 将继续提供 Java 插件并支持在仍提供标准插件支持的浏览器上启动小程序。在未来的 Java SE 版本中,将从 Oracle JDK 和 JRE 中删除此浏览器插件。想要了解有关此计划更改的更多信息的开发人员和用户可以在此blog post 中找到更多信息。

【讨论】:

  • 感谢您提供的信息,很高兴了解 Chrome;希望兼容IE以外的浏览器;你知道 Edge 是否会启动 JWS 吗?还是只有 IE?
  • 实际上,Oracle 在 1.9 中弃用了浏览器插件,并打算在以后将其完全删除。只是不确定这是否意味着整个班级都会消失。我想知道,您是否可以在下载第一个 JNLP 后指示 Chrome“始终打开这种类型的文件”?
  • “你能在你下载第一个 JNLP 后指示 Chrome “总是打开这种类型的文件”吗?” 我不知道也不关心,因为这不是你的事应该告诉最终用户。只需给他们简单的说明 - 例如“下载后打开它,以启动应用程序..”.
  • 完全同意,但不幸的是,有时公司没有资源来完全重写广泛使用的应用程序:\。
  • “有时公司没有资源”(耸耸肩)告诉我一些让我很在意的事情。顺便说一句 - 在下载链接下方添加建议文本没什么用重写应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多