0

sun.misc.InvalidJarIndexException当使用 jython 从 Web 服务调用 python 脚本时,我得到了一个。我正在使用 JDK 7、Axis2 1.6、壁垒 1.6 和 jython 2.5.0。

如果使用 Axis2 1.5 和 Rampart 1.5 从 Servlet 或 Web 服务执行相同的操作,它工作正常。

我正在从 Web 服务调用 jython 来执行 python 脚本。

刷新.py

#!/usr/bin/python
import os
import subprocess

print "refresh script"

摘自 Web 服务方法以调用 python 脚本

PythonInterpreter interp = new PythonInterpreter();
interp.execfile("/root/Documents/refresh.py");

一旦execfile()调用,它会给出以下错误

文件“/root/Documents/refresh.py”,第 2 行,在 import os 文件“/root/Documents/tomcat/webapps/refresh/WEB-INF/lib/jython.jar/Lib/os.py”,第 48 行, 在 sun.misc.InvalidJarIndexException: 无效索引

os.py 中的第 48 行实际上是从 jython.jar 导入 java 类。我也尝试过导入线程,它在第 5 行失败,它再次从 jython.jar 引用 java 类。

4

1 回答 1

0

我找到了解决这个问题的方法。

创建了一个 Servlet,它将从 init() 方法进行 Jython 调用。将此 Servlet 配置为在启动时加载。

一旦部署了 Web 应用程序并加载了所有 Web 服务,Servlet 就会加载所有需要的 jython 类,并且它将被重用于后续的 Web 服务调用。

于 2014-02-07T03:43:14.573 回答