0

我有一个在 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 都可以毫无问题地加载。

有什么建议么?

4

1 回答 1

1

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

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

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

于 2015-04-09T19:32:22.107 回答