Debian Stable更新Java后RJSDMX遇SSL证书路径错误求助
Debian Stable下RJSDMX因Java证书更新导致SSL握手失败的解决求助
我在多台设备上运行Debian Stable系统,今早安装了影响Java的安全更新后,其中一台设备使用RJSDMX时出现问题,尽管所有设备配置相近。
RJSDMX是一款支持多语言的统计数据下载工具,已按相关建议安装开发版。
安装RJSDMX开发版的命令
require(devtools) install_github(repo = "amattioc/SDMX", subdir = "RJSDMX")
测试脚本
library(tidyverse) library(RJSDMX) iestat_retrieval <- function(dataset_query){ res <- getTimeSeriesTable('EUROSTAT', dataset_query) |> as_tibble() return(res) } query <- "ert_bil_eur_a/A.AVG.NAC.RON" all_rates_ini <- estat_retrieval(query) all_rates_ini sessionInfo()
运行测试脚本后的错误输出
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ── ✔ ggplot2 3.4.0 ✔ purrr 1.0.1 ✔ tibble 3.1.8 ✔ dplyr 1.1.0 ✔ tidyr 1.3.0 ✔ stringr 1.5.0 ✔ readr 2.1.3 ✔ forcats 0.5.2 ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ── ✖ dplyr::filter() masks stats::filter() ✖ dplyr::lag() masks stats::lag() Loading required package: rJava Loading required package: zoo Attaching package: ‘zoo’ The following objects are masked from ‘package:base’: as.Date, as.Date.numeric 2023-01-30T15:40:23.983 INFO [it.bancaditalia.oss.sdmx.client.RestSdmxClient runQuery] Contacting web service with query: https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/ert_bil_eur_a/latest 2023-01-30T15:40:24.448 SEVERE [it.bancaditalia.oss.sdmx.client.RestSdmxClient runQuery] Exception. Class: javax.net.ssl.SSLHandshakeException - Message: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : it.bancaditalia.oss.sdmx.exceptions.SdmxIOException: Connection problems while talking to endpoint: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target > sessionInfo() R version 4.2.2 (2022-10-31) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Debian GNU/Linux 11 (bullseye) Matrix products: default BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.13.so locale: [1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8 [5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 [7] LC_PAPER=en_GB.UTF-8 LC_NAME=en_GB.UTF-8 [9] LC_ADDRESS=en_GB.UTF-8 LC_TELEPHONE=en_GB.UTF-8 [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=en_GB.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] RJSDMX_3.0-4 zoo_1.8-11 rJava_1.0-6 forcats_0.5.2 [5] stringr_1.5.0 dplyr_1.1.0 purrr_1.0.1 readr_2.1.3 [9] tidyr_1.3.0 tibble_3.1.8 ggplot2_3.4.0 tidyverse_1.3.2 loaded via a namespace (and not attached): [1] pillar_1.8.1 compiler_4.2.2 cellranger_1.1.0 [4] dbplyr_2.2.1 tools_4.2.2 lattice_0.20-45 [7] timechange_0.1.1 googledrive_2.0.0 jsonlite_1.8.4 [10] lubridate_1.9.0 lifecycle_1.0.3 gargle_1.2.1 [13] gtable_0.3.1 pkgconfig_2.0.3 rlang_1.0.6 [16] reprex_2.0.2 DBI_1.1.3 cli_3.6.0 [19] haven_2.5.1 xml2_1.3.3 withr_2.5.0 [22] httr_1.4.4 generics_0.1.3 vctrs_0.5.2 [25] fs_1.5.2 hms_1.1.2 googlesheets4_1.0.1 [28] grid_4.2.2 tidyselect_1.2.0 glue_1.6.2 [31] R6_2.5.1 fansi_1.0.4 readxl_1.4.1 [34] tzdb_0.3.0 modelr_0.1.9 magrittr_2.0.3 [37] backports_1.4.1 scales_1.2.1 ellipsis_0.3.2 [40] rvest_1.0.3 assertthat_0.2.1 colorspace_2.0-3 [43] utf8_1.2.2 stringi_1.7.8 munsell_0.5.0 [46] broom_1.0.1 crayon_1.5.2
已尝试的操作
执行了sudo R CMD javareconf,但问题未解决,命令输出如下:
$ sudo R CMD javareconf Java interpreter : /usr/lib/jvm/default-java/bin/java Java version : 11.0.18 Java home path : /usr/lib/jvm/default-java Java compiler : /usr/lib/jvm/default-java/bin/javac Java headers gen.: /usr/bin/javah Java archive tool: /usr/lib/jvm/default-java/bin/jar trying to compile and link a JNI program detected JNI cpp flags : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm gcc -I"/usr/share/R/include" -DNDEBUG -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/home/jranke/git/r-backports/bullseye/r-base-4.2.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c conftest.c -o conftest.o gcc -shared -L/usr/lib/R/lib -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/default-java/lib/server -ljvm -L/usr/lib/R/lib -lR JAVA_HOME : /usr/lib/jvm/default-java Java library path: $(JAVA_HOME)/lib/server JNI cpp flags : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm Updating Java configuration in /usr/lib/R Done.
确认这是Java证书更新引发的问题,但不知道具体解决办法,恳请提供可行的解决建议。
内容的提问来源于stack exchange,提问作者larry77
相关产品推荐
相关产品推荐

