2010-11-23 44 views
0

状况检测:如何时,/为什么Java Web Start的启动失败为用户

大公司与通过Java Web Start启动从Java Web应用程序几个内部的Java应用程序。用户登录到Java Web应用程序并选择一个通过Java WebStart启动的程序。当用户尝试运行应用程序时,应用程序会登录到数据库中。一旦应用程序启动,它会标记数据库中成功的行。

问题:

有在用户启动程序的数据库中的行,但应用程序永远不会更新,它启动数据库。有迹象表明,我能想到的只有几个原因:

  • 用户没有安装JVM或者可能是正确的版本
  • 应用程序无法加载由于到Web服务器/部署的问题。 (例如不是由应用程序所需的所有.jar文件部署到Web服务器。
  • 的应用程序有与数据库或导致它无法写入到数据库中的错误的连接问题。

目标/问题:

我想确定原因的数量。是否有无法检测为什么Java Web Start App无法启动,以便我可以看到这种情况的频率?因为我可能不会考虑吗?

回答

2

Your cau看起来似乎是合理的,但我认为他们将很难通过添加更多的代码来排除故障,特别是前两个原因。我认为您将需要做一些更老式的故障排除,以便您可以复制用户遇到的问题。

也许在网络应用程序有一个“麻烦推出?”链接指出遇到前两个问题之一的用户可以用来报告问题,因为他们应该能够轻松检测到应用程序未启动。

要消除第三个原因,不要让应用程序自己直接连接到数据库,而只是让它们通过HTTP与启动JNLP的Web应用程序进行通信 - 您可以合理地确信它们具有连接性到该服务器。然后让该Web应用程序插入适当的数据库记录。

1

我想建议你分别解决每个案件的解决方案。

* The user did not have JVM installed or possibly the correct version 

通常,用户通过单击链接到浏览器中的JNLP文件来启动网络启动应用程序。尝试检查是否安装了java插件。你可以用java脚本来完成它。这样你将避免没有Java插件的用户启动应用程序。我知道这不是理想的解决方案: - 可能插件没有安装,但桌面Java可以运行。这是“假否定” - 用户可能会成功运行应用程序,但随后会卸载JVM并尝试再次运行应用程序。

* The application failed to load due to a web-server/deployment issue. (For example not all .jars required by the application were deployed to the web server. 
* The application had a connection issue with the database or a bug that caused it to not write to the database. 

所有其他问题可以使用某种加载程序来解决。

  1. 使用bat文件/ shell脚本运行应用程序,该脚本在运行应用程序本身之前测试java在这里。我知道web开始运行应用程序本身,但你可以在桌面上创建一个特殊的图标,通过脚本运行你的应用程序。
  2. 使用轻量级加载程序包装您的“大”应用程序,该加载程序检查类路径和(可能)数据库连接的有效性,然后运行该应用程序。加载器可以发送失败通知给用户和管理员
  3. 一些疯狂的解决方案。让我们回到脚本。脚本可能会通知服务器端应用程序将要启动。服务器启动计时器任务,检查DB中的应用程序状态。如果应用程序没有连接到服务器,则服务器可以通过使用“net send”(如果用户在windows上)发送消息或如果用户在其他平台上发送消息来通知用户。