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