Websphere 尝试从Jython(WAS)实例化Java对象时的NPE

Websphere 尝试从Jython(WAS)实例化Java对象时的NPE,websphere,jython,wsadmin,Websphere,Jython,Wsadmin,在课堂上 公共类MyObject{ 公共对象(){ System.out.println(“true=”+true); } } 还有jython脚本 导入系统 sys.path.append('my-custom.jar') 从my.custom导入* config=MyObject() 在WAS ND 6中运行时,我遇到以下错误wsadmin.bat com.ibm.bsf.BSFException:来自Jython的异常: 回溯(最里面的最后一个): 文件“”,第7行,在? java.l

在课堂上

公共类MyObject{
公共对象(){
System.out.println(“true=”+true);
}
}
还有jython脚本

导入系统 sys.path.append('my-custom.jar') 从my.custom导入* config=MyObject() 在WAS ND 6中运行时,我遇到以下错误
wsadmin.bat

com.ibm.bsf.BSFException:来自Jython的异常: 回溯(最里面的最后一个): 文件“”,第7行,在? java.lang.NullPointerException 位于java.lang.Class.isAssignableFrom(本机方法) 位于org.python.core.PyJavaClass.init_class_389;(PyJavaClass.java) ... 大约剪了20行。。。 位于org.eclipse.core.launcher.Main.run(Main.java:981) 位于com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:339) 位于com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:94)

现在做什么

更新:

看起来,虽然将jar包含在
sys.path
中足以让类被找到,但不足以让它被实例化。如果我将jar解压缩到现有的路径中,它就会工作


所以我的新问题是,为什么不将jar添加到
sys.path
中呢?是因为jython版本太旧了吗?我认为它是v2.1。

通常,我认为
sys.path
用于包含python模块(或
.class
文件)的目录,这可能就是解压jar时它工作的原因。我认为您真正想要的是将jar放在java类路径上。这可以通过调用
wsadmin
sys时通过
-wsadmin\u classpath
选项提供jar的路径来实现。path用于python类文件,而不是java类文件。另外,os.path经常与其他文件一起使用,以确保您拥有有效的完整路径。我不知道这是否是不可能的,但我也从未有过将sys.path(在wsadmin中)用于python/jython文件的运气,但我可能只是做得不正确。

我无法修改类路径(或者更确切地说,我不想修改)。这个Q/A说我正在尝试的应该是有效的。
Running c:\user\jem\projects\gmm/build/deploy/x.py
    WASX7209I: Connected to process "dmgr" on node dmgr_node using SOAP connector;  The type of process is: DeploymentManager
    WASX7017E: Exception received while running file "c:\user\jem\projects\gmm/build/deploy/x.py"; exception information:
    java.lang.NullPointerException: java.lang.NullPointerException