【问题标题】:How to deploy JDBC client app via WebStart?如何通过 WebStart 部署 JDBC 客户端应用程序?
【发布时间】:2009-07-01 16:10:34
【问题描述】:

我知道这是一个非常有帮助的社区.. 所以我希望我能得到我的问题的答案。实际上,我有一个通过 JDBC 联系 Oracle 数据库的摇摆应用程序。

现在我想通过 WebStart 部署它。我在打印出日志消息的应用程序中有一个文本区域。

一切顺利,jnlp 在客户端下载我的应用程序 jar。但是突然,日志区域说,它无法连接到数据库。我的意思是,在建立与数据库的连接时出现 SQL 异常。

可能出了什么问题。 当我通过网络启动部署应用程序时,我是否应该包含任何其他 jar/库。 但我听说我只能通过 webstart 下载一个 jar 文件和 一个 jar 不能包含另一个 jar 文件。

请帮忙。

这是我的 JNLP 文件

<?xml version="1.0" encoding="utf-8"?>

<jnlp spec="0.2 1.0" codebase="http://172.16.3.214:8080/CRM" href="CsvClient.jnlp">

<information>
    <title>CSV Import Client</title>
    <vendor>CRM Software</Vendor>
    <homepage href="index.jsp" />
    <description>CSV Import client</description>
    <icon href="csv.gif" />
    <offline-allowed/>
</information>

<resources>
    <j2se version="1.6+" />
    <jar href="csv.jar" />

</resources>

<application-desc main-class="org.csv.Main" />

</jnlp>

这是我用来获取 jar 文件的 Manifest.txt 文件..

Manifest-Version: 1.0

Main-Class: org.csv.Main

【问题讨论】:

  • 你能发布你的 SQLException 堆栈跟踪吗?
  • 能否提供sql异常输出?
  • [Ljava.lang.StackTraceElement;@95da38 这是我在说 ex.getStackTrace.toString() 时在日志中得到的内容
  • 你想做 ex.printStackTrace()

标签: java jdbc jar


【解决方案1】:

您当然需要包含您的应用程序所需的特定 jdbc 驱动程序。你可以在 jnlp 资源中有几个 jar。 您可能还需要指定安全约束,jnlp 应用程序默认运行在沙盒环境中,因此可能不允许连接到另一台主机(例如您的数据库服务器)。但是显示 SQL 异常,它应该包含错误的线索。

Here 是一个不错的起点

【讨论】:

  • 我如何在 web start 中使用 JDBC 开始
  • 还有什么比什么?您在 .jnlp 中包含 jdbc 的 jar 文件
【解决方案2】:

一个 JNLP 中可以有多个 jar 资源。 JNLP 文件也可以使用扩展 JNLP 文件。清单中的 Main-Class 条目用于 java -jar 并被 WebStart 忽略。

Oracle 提供了多种类型的数据库驱动程序。您可能想要纯 Java 的。您还需要安排从与数据库相同的机器(或至少看起来是)为应用程序提供服务。对于较大的项目,通常会使用应用层(可能有点过于急切,因为这会导致项目更复杂)。

【讨论】:

    【解决方案3】:

    如果您的数据库与 Web 服务器不是同一主机,则您超出了沙盒边界。

    您必须签署您的代码才能允许授予它无限制的访问权限。查看 JNLP 文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 2015-10-17
      • 2018-12-23
      • 1970-01-01
      相关资源
      最近更新 更多