我过去几天一直在使用RDAVIDWebService,今天早上它突然出现以下错误。我在Windows 7计算机上使用R 3.1.1虽然我可以切换到另一台计算机并获得相同的错误。 任何人都可以告诉我这个错误意味着什么,为什么它今天出现而不是昨天? 尼克
大卫< -DAVIDWebService $新(电子邮件="用户@研究所&#34)
.jcall错误(存根," S","验证",电子邮件): org.apache.axis2.AxisFault:传输错误:301错误:永久移动
答案 0 :(得分:2)
解决新的DAVID Web服务配置
1)首先,HTTPS证书需要Java 8才能运行。 由于素数大小,以前的版本无法运行。 Java接受的最大大小为1024位。这是一个已知问题(参见JDK-6521495)。
1.1)检查你的java版本 java -version
java版“1.8.0_60” Java(TM)SE运行时环境(版本1.8.0_60-b27) Java HotSpot(TM)64位服务器VM(内置25.60-b23,混合模式)
如果版本是1.7.XX或更早版本,则需要安装Java 8.如果不是,请转到步骤2.
1.2)在Windows中,从oracle网站下载并安装jre或jdk 8
1.2)在linux中按照http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html中的说明操作 简而言之,您需要添加webupd8team存储库并安装包:
su - echo“deb http://ppa.launchpad.net/webupd8team/java/ubuntu可信赖的主要”| tee /etc/apt/sources.list.d/webupd8team-java.list echo“deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu可靠主”| tee -a /etc/apt/sources.list.d/webupd8team-java.list apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 apt-get update apt-get install oracle-java8-installer 出口
2)DAVID使用的实际证书未经Java早午餐认可的权威机构签名。然后,它必须合并到“cacerts”文件才能正确使用它。 2.1)在Windows中: 下载cygwin并按照linux说明操作。通常,JRE应安装在JDK的C:\ Program Files \ Java \ jre1.8.0_51 \ lib \ security或C:\ Program Files \ Java \ jdk1.8.0_51 \ jre \ lib \ security中。如有必要,请重新启动计算机。
2.2)在Linux中: 获得证书: echo -n | openssl s_client -connect david.ncifcrf.gov:443 | sed -ne'/ -BEGIN CERTIFICATE - /,/ - END CERTIFICATE- / p'> ncifcrf.cert
检查是否已正确下载: openssl x509 -in ncifcrf.cert -text
备份cacerts文件。在我的例子中,它位于/ etc / ssl / certs / java目录中 sudo cp / etc / ssl / certs / java / cacerts cacerts.org sudo keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias david -file ncifcrf.cert
应将证书添加到密钥库。现在,将新的cacerts版本复制到原始位置 sudo cp cacerts / etc / ssl / certs / java /
3)更新R中的Java配置 R CMD javareconf
Java解释器:/ usr / bin / java Java版本:1.8.0_60 Java主路径:/ usr / lib / jvm / java-8-oracle / jre Java编译器:/ usr / bin / javac Java头文件:/ usr / bin / javah Java归档工具:/ usr / bin / jar
4)最后,在RDAVIDWebService中使用新的DAVID Web服务URL
library("RDAVIDWebService")
david<-DAVIDWebService(email="user@email", url="https://david.ncifcrf.gov/webservice/services/DAVIDWebService.DAVIDWebServiceHttpSoap12Endpoint/")
david
#DAVIDWebService object to access DAVID's website.
#User email: user@email
#Available Gene List/s: not submitted yet.