Hallo liebe Community
Sitze nun schon seit längerem an einem Problem.
Ich habe folgendes JavaScript Skript, das, wenn ich es via Mozilla Browser aufrufe ohne Probleme funktioniert. Es extrahiert die FireFox Cookies via CookieManager Interface.
[XML] netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
try{
var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
.getService(Components.interfaces.nsICookieManager);
var sid = "sid";
for (var e = cookieMgr.enumerator; e.hasMoreElements() {
var cookie = e.getNext().QueryInterface(Components.interfaces.nsICookie);
if(cookie.name == sid){
print("SID found :"+cookie.value);
}
}
print("Last Cookie :"+cookie.value);
}catch(err){ print(err.toString()); }
[/XML]
Ich möchte es jetzt in meinem Java Programm mit dem ScriptEngineManager ausführen. Das sieht so aus:
Wenn ich es compiliere bekomme ich folgenden Fehler:
Warum ist hier "netscape" nicht definiert? Warum kann Firefox es richtig interpretieren? Ich bin schier am verzweifeln, könnt ihr mir einen Denkanstoss geben, warum das nicht klappt? Normalerweise frage ich nicht so "offen", aber ich komme einfach nicht weiter...
Sitze nun schon seit längerem an einem Problem.
Ich habe folgendes JavaScript Skript, das, wenn ich es via Mozilla Browser aufrufe ohne Probleme funktioniert. Es extrahiert die FireFox Cookies via CookieManager Interface.
[XML] netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
try{
var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
.getService(Components.interfaces.nsICookieManager);
var sid = "sid";
for (var e = cookieMgr.enumerator; e.hasMoreElements() {
var cookie = e.getNext().QueryInterface(Components.interfaces.nsICookie);
if(cookie.name == sid){
print("SID found :"+cookie.value);
}
}
print("Last Cookie :"+cookie.value);
}catch(err){ print(err.toString()); }
[/XML]
Ich möchte es jetzt in meinem Java Programm mit dem ScriptEngineManager ausführen. Das sieht so aus:
Java:
import java.io.FileReader;
import java.sql.SQLException;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String args[]) throws ClassNotFoundException, SQLException, ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
FileReader reader = new FileReader("C:/Users/Nikolai/getTheseCookies.js");
engine.eval(reader);
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Wenn ich es compiliere bekomme ich folgenden Fehler:
Code:
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "netscape" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:110)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:232)
at http_request.Main.main(Main.java:28)
Warum ist hier "netscape" nicht definiert? Warum kann Firefox es richtig interpretieren? Ich bin schier am verzweifeln, könnt ihr mir einen Denkanstoss geben, warum das nicht klappt? Normalerweise frage ich nicht so "offen", aber ich komme einfach nicht weiter...