【问题标题】:Problems with deployment, advice needed for a web-based java application部署问题,基于 Web 的 Java 应用程序所需的建议
【发布时间】:2011-05-11 09:52:09
【问题描述】:

我开发了一个命令行(阅读:无 GUI)Java 应用程序,它根据给定的数据集和一系列参数计算数字;并吐出一系列 HTML 文件作为结果报告。这些报告在表格中保存了大量数据,因此为了让用户轻松快速地了解结果,我使用了 JUNG2 库并创建了一个漂亮的图表。

这就是有趣的地方;因为我希望图表是交互式的,所以它应该在应用程序运行并生成文件后部署,每当用户想要查看报告时。我决定使用基于小程序的部署,但是由于以下原因,我对当前的设置不太满意:

  1. 我想让软件尽可能简单易用(我的用户不会精通技术,在大多数情况下甚至会害怕技术)。我真的很想只分发一个 JAR,这迫使我将小程序和它需要的所有其他东西放在一个包中,与主应用程序在同一个 JAR 中。

  2. 小程序和主应用程序需要传达结果,因此我创建了一个基于 XML 的报告,用于保存信息。只要文件在本地机器上并且没有在它周围移动,一切都可以正常工作。不幸的是,我还需要移动文件。用户应该能够将“结果”文件夹保存到 U 盘上,随时随地将 U 盘插入另一台计算机,并能够随意使用报告。

目前小程序是用以下html代码实现的:

<applet code="package.myapp.visualization.GraphApplet.class" 
        codebase="file:/home/user/myApp" 
        archive="myApp-0.2.6-r28.jar" 
        width="750" height="750">
    <param name=input value="results/test_name/results.fxml">
</applet>

如您所见,如果将父文件夹移动到其他位置,此小程序将无法运行。


据我所知,我有几个选择:

a) 更改代码库以指向我们的网络服务器上的 URL,我可以在其中放置 jar 文件。然而,这会产生权限问题,因为小程序将无法读取结果文件。另一种方法是在用户想要可视化图形时将结果文件上传到服务器,尽管由于服务器安全性,我不确定这是否是一个好的选择,以及是否可以这样做,以便自动上传而不打扰用户。

b) 我可以在代码库属性上使用相对路径,但是整个文件夹层次结构在复制时需要保持完整。如果我想不出更好的方法,这可能是最后的手段。

c) 更改部署方法(希望避免这种替代方案,以免在开发阶段花费更多时间)

有什么想法吗?我错过了什么吗?我该如何解决这个问题? 谢谢,

【问题讨论】:

    标签: java applet


    【解决方案1】:

    我不确定我是否完全理解您的用例,但根据我的理解,我建议这样做:

    为使用Java Web Start 启动的应用程序转储小程序。让JNLP 文件为 fxml 文件类型声明文件关联。当用户双击一个 fxml 文件时,它将作为参数传递给 JWS 应用程序的main(String[])

    沙盒 JWS 应用程序可以使用 JNLP API 访问本地文件系统上的资源。这是我的demo. of the JNLP API file services

    【讨论】:

    • 感谢您的建议,安德鲁。如果我正确理解您的建议,这意味着将通过双击 results.fxml 文件来触发将作为小程序执行的代码,从而创建图表。但是,这会将 HTML 报告与图表分开,对吗?我想知道是否应该提供一些有关“主”应用程序创建的文件夹/文件层次结构的信息,以便更好地了解我想要实现的目标......
    • @posdef: ".. 将作为小程序执行的代码将通过双击 results.fxml 文件来触发,从而创建图表。"是与否。大多数情况下没有。 “双击打开”功能是为应用程序设计的(使用main(String[]) 方法) - 它不适用于小程序。 “..这会将 HTML 报告与图表分开,对吧?”是的。但是你能重做 Java 应用程序吗?也显示 HTML?您可以将全部 HTML 和 fxml 打包到一个 zip 存档中,给它一个自定义扩展名,然后让用户双击它。
    • 嗯.. 我实际上是在考虑让 JWS 执行所有报告,包括 HTML 报告,就像您建议的那样。但是,它需要一些设计更改,我现在不太热衷。在这一点上,我的挥杆知识肯定不如 CSS/HTML 设计。所以我担心整个事情最终会变成一大堆丑陋的数字:)无论如何,再次感谢您的建议,我会在未来几天内考虑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多