使用jython从Web服务调用python脚本时,我得到sun.misc.InvalidJarIndexException
。我使用的是JDK 7,Axis2 1.6,rampart 1.6和jython 2.5.0。
如果使用Axis2 1.5和rampart 1.5从Servlet或Web服务执行相同的操作,它可以正常工作。
我从Web服务调用jython来执行python脚本。
#!/usr/bin/python
import os
import subprocess
print "refresh script"
PythonInterpreter interp = new PythonInterpreter();
interp.execfile("/root/Documents/refresh.py");
调用execfile()
后,会出现以下错误
os.py中的第48行实际上是从jython.jar导入java类。我也尝试过导入线程,它在第5行失败,它再次引用jython.jar中的java类。文件“/root/Documents/refresh.py”,第2行,in import os File“/root/Documents/tomcat/webapps/refresh/WEB-INF/lib/jython.jar/Lib/os.py”, 第48行,在sun.misc.InvalidJarIndexException:索引无效
答案 0 :(得分:0)
我找到了解决此问题的方法。
创建一个Servlet,它将从init()方法调用Jython。配置此Servlet以在启动时加载。
一旦部署了Web应用程序并加载了所有Web服务,Servlet就会加载所有必需的jython类,并且它将被重用于后续的Web服务调用。