【问题标题】:Getting InvalidJarIndexException when executing python script using jython使用 jython 执行 python 脚本时出现 InvalidJarIndexException
【发布时间】:2014-03-01 14:53:47
【问题描述】:

在使用 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 脚本。

刷新.py

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

print "refresh script"

调用python脚本的web服务方法摘录

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

一旦调用execfile(),就会出现以下错误

文件“/root/Documents/refresh.py”,第 2 行,在 导入操作系统文件“/root/Documents/tomcat/webapps/refresh/WEB-INF/lib/jython.jar/Lib/os.py”, 第 48 行,在 sun.misc.InvalidJarIndexException: Invalid index

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

【问题讨论】:

    标签: java axis2 rampart jython-2.5


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      相关资源
      最近更新 更多