Java RJDBC::dbConnect 期间出现异常错误:如何静默忽略?
Java exception error during RJDBC::dbConnect: how to silently ignore?
我正在尝试使用 RJDBC 从 R 中连接到 SAS 驱动的远程数据库。第一次执行 dbConnect
时,出现错误:
Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1],
: java.lang.NoClassDefFoundError: com/sas/net/crypto/CryptoException
当我在第一次调用后第二次执行 dbConnect
时,连接正常,我得到了 class JDBCConnection
.
的对象
我查看了 sas.core.jar
文件(来自最新的 94M2 SAS JDBC 驱动程序),可以看到其中列出的 CryptoException
。但是,我也很好奇为什么它试图抛出 CryptoException
.
问题 1:如何在第一个 dbConnect
调用时静默忽略错误?
问题 2:为什么要抛出 CryptoException
?我能做些什么来防止这种情况发生? (这可能会取消问题 1。)
这与 SAS 支持社区页面上共享的问题相同:
https://communities.sas.com/thread/80620
您在那里分享了您正在使用的代码
https://github.com/wthielen/wrds/blob/7edfbfe89ddc329618be72e591cc0bd50e294ea4/R/wrds.R#L47
在此代码中,问题似乎是您试图在初始化 JVM 之前设置类路径。在调用 .jaddClassPath 之前使用 .jinit() 应该可以解决这个问题。在 .jinit 的文档中,由于您正在开发一个包,您可能想使用 .jpackage 而不是 .jinit
我遇到了同样的问题,并尝试了上述解决方案,没有任何变化。
我计算机上的解决方案是修改 .Renviron 文件,该文件包含 java 驱动程序的类路径。只需将 "JDBC_Drivers" 替换为 "WRDS_Drivers" 即可:
类路径="C:/Users/nicol/Documents/WRDS_Drivers/sas.core.jar;C:/Users/nicol/Documents/WRDS_Drivers/sas.intrnet.javatools.jar"
我正在尝试使用 RJDBC 从 R 中连接到 SAS 驱动的远程数据库。第一次执行 dbConnect
时,出现错误:
Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1],
: java.lang.NoClassDefFoundError: com/sas/net/crypto/CryptoException
当我在第一次调用后第二次执行 dbConnect
时,连接正常,我得到了 class JDBCConnection
.
我查看了 sas.core.jar
文件(来自最新的 94M2 SAS JDBC 驱动程序),可以看到其中列出的 CryptoException
。但是,我也很好奇为什么它试图抛出 CryptoException
.
问题 1:如何在第一个 dbConnect
调用时静默忽略错误?
问题 2:为什么要抛出 CryptoException
?我能做些什么来防止这种情况发生? (这可能会取消问题 1。)
这与 SAS 支持社区页面上共享的问题相同:
https://communities.sas.com/thread/80620
您在那里分享了您正在使用的代码
https://github.com/wthielen/wrds/blob/7edfbfe89ddc329618be72e591cc0bd50e294ea4/R/wrds.R#L47
在此代码中,问题似乎是您试图在初始化 JVM 之前设置类路径。在调用 .jaddClassPath 之前使用 .jinit() 应该可以解决这个问题。在 .jinit 的文档中,由于您正在开发一个包,您可能想使用 .jpackage 而不是 .jinit
我遇到了同样的问题,并尝试了上述解决方案,没有任何变化。 我计算机上的解决方案是修改 .Renviron 文件,该文件包含 java 驱动程序的类路径。只需将 "JDBC_Drivers" 替换为 "WRDS_Drivers" 即可:
类路径="C:/Users/nicol/Documents/WRDS_Drivers/sas.core.jar;C:/Users/nicol/Documents/WRDS_Drivers/sas.intrnet.javatools.jar"