在闪亮的应用程序中加载RJDBC

时间:2015-04-07 17:58:33

标签: r shiny shiny-server rjava rjdbc

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

在app之外(在控制台中)我已经能够安装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没有加载。但是,当我从控制台运行时,用户"闪亮," rJava和RJDBC都没有问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我还不完全确定Shiny和rJava之间的问题是什么,但我能够让我的应用无论如何工作。

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

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