tôi đang cố gắng để tạo ra và đúc một đối tượng trong Jython và tôi nhận được lỗi sau:Jython - Class Cast ngoại lệ với 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)
Đây là mã:
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();
}
}
Đối với cuộc sống của tôi Tôi không thể tìm ra những gì tôi đang làm sai. Từ tất cả những điều tôi đã đọc, tôi dường như đang làm điều này một cách chính xác nhưng tôi không thể làm cho nó hoạt động được.
Nếu bất kỳ ai có kinh nghiệm với Jython có thể cho tôi biết những gì tôi đang làm sai nó sẽ được nhiều đánh giá cao.
tôi tự hỏi những gì 'IxNet' và' IxNetType' trông giống như. Nếu nguồn cho các loại này được đóng lại, bạn có thể viết lại chúng theo cách sao cho giảm thiểu phơi nhiễm nhưng vẫn tái tạo vấn đề của bạn? –