したがって、Rapache プログラムで MSSQL サーバーにアクセスする必要があり、Rapache コードで RJDBC をライブラリとしてロードしようとすると、サーバー エラーが発生します。ログでは、次のようになります。
referer: http://10.21.8.145/
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/usr/lib/R/site-library/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: package/namespace load failed for 'rJava'
Traceback:
5: stop(gettextf("package/namespace load failed for %s", sQuote(package)),
call. = FALSE, domain = NA)
4: library(rJava)
3: eval.with.vis(expr, envir, enclos)
2: eval.with.vis(ei, envir)
1: source("/var/www/brew/optimization.R")
[Fri Jun 15 13:57:29 2012] [error] [client 10.21.2.79] File does not exist: /var/www/favicon.ico
また、確認したところ、そのディレクトリに rJava.so が存在します。それはlibjvm.soで何かですか?
問題は、このライブラリ(RJDBC)をRだけで実行すると、次のように表示されます:
Loading required package: DBI
Loading required package: rJava
Warning message:
replacing previous import 'show' when loading 'rJava'
その後、私のRJDBCコードはすべて正常に動作します。これは Java 構成の問題ですか、それとも警告メッセージのために rApache がライブラリを実行できないという問題ですか?