【问题标题】:Loading RJDBC in Shiny app在 Shiny 应用程序中加载 RJDBC
【发布时间】:2015-06-12 10:22:09
【问题描述】:

我有一个在 Ubuntu 14.10 上运行的闪亮应用程序,我需要连接到 SQL Server 数据库。我正在使用 JDBC 进行连接。

在应用程序之外(在控制台中)我已经能够安装 JDBC 包及其依赖项、加载它、连接和查询数据库,没有任何问题。

但是,当我尝试在闪亮服务器上运行的闪亮应用中执行此操作时,应用无法加载,并且我从浏览器中收到以下错误:

Listening on http://127.0.0.1:51925
Loading required package: DBI
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/local/lib/R/site-library/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory

发生错误是因为 rJava 未加载。但是,当我以“shiny”用户身份从控制台运行时,rJava 和 RJDBC 都可以正常加载。

有什么建议吗?

【问题讨论】:

  • 您能说明如何在控制台和应用程序中调用它吗?
  • @martin 在这两种情况下我只是使用library(RJDBC) 来加载,但是它不会成功加载到应用程序中。
  • 它报告的文件夹是您的库的安装位置吗? .libPaths() 的发布输出
  • 对于闪亮的用户:[1] "/home/shiny/R/x86_64-pc-linux-gnu-library/3.1" [2] "/usr/local/lib/R/site-library" [3] "/usr/lib/R/site-library" [4] "/usr/lib/R/library" 另外,确认每个都有 rJava。
  • 对此进行更新:我能够使用 ODBC 让我的应用程序正常工作,这似乎没有任何问题。

标签: r shiny shiny-server rjava rjdbc


【解决方案1】:

我仍然不完全确定 Shiny 和 rJava 之间的问题是什么,但无论如何我都能让我的应用正常运行。

虽然 Microsoft SQL Server ODBC 驱动程序文档没有明确提及对 Ubuntu 的支持,但它可以使用与 Suse 相同的设置来工作。然后,由于 RODBC 包对 rJava 没有任何依赖关系,因此与远程数据库的连接工作正常。

简而言之:如果您计划在 Ubuntu 上部署 Shiny 应用程序并需要建立 SQL Server 连接,请使用 ODBC 而不是 JDBC。它会让你的生活更轻松。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2017-03-18
    • 2018-07-19
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2017-06-09
    相关资源
    最近更新 更多