Ich betreibe rserve von Server-Rechner cmdConnect rserve von JAVA-Authentifizierung mit
Rserve.exe --RS-conf Rserv.conf --RS-port 12306
Rserv.conf Datei folgenden Inhalt hat:
pwdfile RserveAuth.txt
Auth erforderlich
remote enable
Klartext deaktivierenRserveAuth.txt hat folgenden Inhalt:
Admin 123456
I R Server von JAVA anschließe ist
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(); } } }
Anschluss an rserve offen für alle ohne Benutzernamen & Passwort. Wie soll ich die Sicherheit hinzufügen, und lassen Sie die Verbindung nur mit gültigen Anmeldeinformationen rserve
Antwort
zugreifen Wenn Sie die Authentifizierung nach der Verbindung als einen ersten Befehl zu schaffen, müssen Sie die login
Befehl auszuführen aktiviert haben. Die Java-Bibliothek hat einen speziellen Wrapper dafür.
Siehe Code unten für Beispiel Anwendungsfall.
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());
Außerdem würde ich mit vollständigem Pfad als pwdfile
Wert empfehlen.
Verwendet es ssh intern zur Verbindung? Ist es eine Lösung, die sowohl für Windows als auch für Linux funktioniert? – madhavi
Ja, es funktioniert für jedes System (ich habe es mit MacOS X getestet), und nein, es nutzt native Socket-Verbindungen. – Babl
bcz ich folgte Ihrer Lösung und bekam eine org.rosuda.REngine.Rserve.RserveException: Anmeldung fehlgeschlagen, Anfrage Status: Autorisierung fehlgeschlagen \t bei org.rosuda.REngine.Rserve.RConnection.login (RConnection.java:399) Fehler – madhavi
- 1. Interne Daten mit Rserve ändern
- 2. Java.net Verbindung zurücksetzen mit Rserve
- 3. Rserve - Remote-Verbindung fehlgeschlagen
- 4. R Integrieren mit Java mit Rserve
- 5. rserve Verbindung fehlschlägt
- 6. Installation von Rserve-Paket in Linux
- 7. Trennen und Anfügen von RServe-Verbindung: Verbindung nicht möglich
- 8. Rserve .http.request Funktion ohne FastRWeb
- 9. Aufruf von ggplot von Rserve. Blank png Bild von 1KB
- 10. Wie kann ich Rserve ordnungsgemäß herunterfahren?
- 11. Fehler beim Ausführen von Bibliothek in rserve von Java
- 12. Fehler bei der plattformübergreifenden Kommunikation zwischen Node.js und R unter Verwendung von Rserve in AWS. Error: connect ETIMEDOUT
- 13. Stoppen von RServe Drucken von JSON auf der Konsole
- 14. Verhalten von connect() mit TCP
- 15. Separate Spalten mit connect von
- 16. socket connect() wird mit QT connect() verwechselt
- 17. So schließen Sie Rserve über die Befehlszeile
- 18. So machen Sie dplyr%>% Arbeit in rserve-js und Rserve
- 19. Beschaffung von R-Dateien nur einmal auf Rserve
- 20. Identifizierung String-Werte oder Fehler von rserve in Java
- 21. kann nicht rserve von Java in Linux-Umgebung
- 22. Connect Datenquelle mit Proxy
- 23. Verknüpfung von Facebook Connect
- 24. connect R mit Cassandra
- 25. Oauth2 mit OpenId connect
- 26. mit connect-Blitz mit sails.js
- 27. Senden von SMS mit RestComm-Connect Problem
- 28. Auslösen von Funktionen mit Facebook connect
- 29. QT connect Signal von QDialog mit Hauptfenster
- 30. Ausführen von Rstudio-Connect mit Docker
Es sieht so aus, als ob Ihr RServer unter Windows 'Rserve.exe' installiert ist, was macht der Client-Benutzer [Windows, MacOSX, Linux]? Ist Ihr Produktions-RServer unter Windows? Einfach die Anforderungen überprüfen. – Technophobe01
@ Technophobe01 RServer ist auf Windows-Rechner und mein Client kann jeder Windows/Linux/MacOSX sein, der damit verbunden ist. Die Verbindungsanforderung an Rserver wird von der JAVA-Klasse ausgeführt, und später führe ich ein Skript auf Rserve mit Verbindungsobjekt aus und übergebe die Ausgabe des Skripts an die JSP-Seite. – Akki
FYI. Die Version von RServe unter Windows ist begrenzt. Die wichtigste Einschränkung ist "keine parallelen Verbindungen werden unterstützt, nachfolgende Verbindungen teilen sich den gleichen Namensraum"/"Sitzungen werden nicht unterstützt - dies ist eine Konsequenz der Tatsache, dass parallele Verbindungen nicht unterstützt werden". Siehe https://www.rforge.net/Rserve/rserve-win.html unter "Bitte lesen Sie vor dem Download/mit der Windows-Version von Rserve!" –