Ich versuche, ein Objekt in Jython zu erstellen und zu werfen und ich folgende Fehlermeldung erhalte:Jython - Klasse Cast Exception mit PyObject
Exception in thread "MainThread" java.lang.ClassCastException: org.python.core.PySingleton cannot be cast to resources.ixia.IxNetType
at resources.ixia.IxNetFactory.create(IxNetFactory.java:34)
at resources.ixia.IxiaTest.run(IxiaTest.java:34)
at resources.ixia.IxiaTest.<init>(IxiaTest.java:14)
at resources.ixia.IxiaTest.main(IxiaTest.java:42)
Hier ist der Code:
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
public class IxNetFactory {
private PyObject ixNetClass;
private PythonInterpreter interpreter;
public IxNetFactory(String script_dir) {
script_dir=script_dir.replace("\\", "/");
interpreter = new PythonInterpreter();
interpreter.exec("import sys");
interpreter.exec("sys.path.append('"+script_dir+"')");
interpreter.exec("import time");
interpreter.exec("import os");
interpreter.exec("from ixnetworks import IxNet");
//interpreter.exec("from utils import sm");
//interpreter.exec("from utils import cpf");
ixNetClass = interpreter.get("IxNet");
}
/*
* Create an IxNet object
*
* Usage: ixNet.create();
*/
public IxNetType create() {
PyObject ixNetObject = ixNetClass.__call__();
return (IxNetType)ixNetObject.__tojava__(IxNetType.class);
}
public void close() {
interpreter.close();
}
}
Für die Leben von mir Ich kann nicht herausfinden, was ich falsch mache. Von all den Dingen, die ich gelesen habe, scheint ich das richtig zu machen, aber ich kann es nicht zur Arbeit bringen.
Wenn jemand mit Erfahrung mit Jython mir sagen könnte, was ich falsch mache, wäre es sehr geschätzt.
I frage mich, wie 'IxNet' und' IxNetType' aussehen. Wenn die Quelle für diese Typen geschlossen ist, können Sie sie so umschreiben, dass ihre Belichtung minimiert wird, aber Ihr Problem immer noch reproduziert wird? –