使用身份验证从 JAVA 连接到 RServe
Connect to RServe from JAVA using authentication
我是 运行 使用 cmd
从服务器计算机 RServe
Rserve.exe --RS-conf Rserv.conf --RS-port 12306
Rserv.conf 文件包含以下内容:
密码文件RserveAuth.txt
需要授权
远程启用
明文禁用
RserveAuth.txt 包含以下内容:
管理员 123456
我正在从 JAVA
连接到 R 服务器
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.REngineException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
import org.rosuda.REngine.REXP;
import org.rosuda.REngine.*;
public class ConnecttoR
{
...
...
public void connectR()
{
try
{
RConnection connection = new RConnection("172.16.33.242",12306); // Works if authentication is not required in Rserv.conf
}
catch (RserveException e) {
e.printStackTrace();
}
catch(REXPMismatchException e){
e.printStackTrace();
}
catch(REngineException e){
e.printStackTrace();
}
}
}
无需用户名和密码即可与 Rserve 建立连接。我应如何添加安全性并仅允许使用有效凭据进行连接以访问 Rserve
由于您在创建连接后启用了身份验证作为第一个命令,因此您需要执行 login
命令。 Java 库有一个特殊的包装器。
示例用例请参见下面的代码。
RConnection connection = new RConnection("127.0.0.1",12306);
connection.login("Admin", "123456");
REXP x = connection.eval("R.version.string");
System.out.println(x.asString());
此外,我建议使用完整路径作为 pwdfile
值。
我是 运行 使用 cmd
从服务器计算机 RServeRserve.exe --RS-conf Rserv.conf --RS-port 12306
Rserv.conf 文件包含以下内容:
密码文件RserveAuth.txt
需要授权
远程启用
明文禁用RserveAuth.txt 包含以下内容:
管理员 123456
我正在从 JAVA
连接到 R 服务器import org.rosuda.REngine.REXPMismatchException; import org.rosuda.REngine.REngineException; import org.rosuda.REngine.Rserve.RConnection; import org.rosuda.REngine.Rserve.RserveException; import org.rosuda.REngine.REXP; import org.rosuda.REngine.*; public class ConnecttoR { ... ... public void connectR() { try { RConnection connection = new RConnection("172.16.33.242",12306); // Works if authentication is not required in Rserv.conf } catch (RserveException e) { e.printStackTrace(); } catch(REXPMismatchException e){ e.printStackTrace(); } catch(REngineException e){ e.printStackTrace(); } } }
无需用户名和密码即可与 Rserve 建立连接。我应如何添加安全性并仅允许使用有效凭据进行连接以访问 Rserve
由于您在创建连接后启用了身份验证作为第一个命令,因此您需要执行 login
命令。 Java 库有一个特殊的包装器。
示例用例请参见下面的代码。
RConnection connection = new RConnection("127.0.0.1",12306);
connection.login("Admin", "123456");
REXP x = connection.eval("R.version.string");
System.out.println(x.asString());
此外,我建议使用完整路径作为 pwdfile
值。