通过在 Windows 服务器的命令提示符下以管理员身份执行以下命令,我能够查看 Maximo jython.jar(或任何 .jar 文件)的 Maximo 内容:
assoc .jar=压缩文件夹
这样,我就能够在以下位置的 Windows 服务器 Websphere 实现上找到并浏览 jython.jar 中的 Lib 文件夹:
C:\IBM\WebSphere\AppServer\profiles\ctgAppSrv01\installedApps\ctgCell01\MAXIMO.ear\lib\jython.jar\Lib
socket.py 模块在那里存在,因此应该可以在 Maximo 的 Jython 中使用它。它似乎是专门为 Jython 编写的版本,并在 .py 文件中引用了以下内容:
https://wiki.python.org/jython/NewSocketModule
在 vanilla Maximo 7.6.0 中,Jython 路径似乎不包括上面引用的 jython.jar 的 Lib 文件夹。您可以在此处找到有关如何在自动化脚本中以编程方式将其添加到路径的详细信息:
https://expertinmaximo.wordpress.com/2016/08/26/import-python-libraries-to-use-in-automation-scripts/
完成后,您应该能够导入套接字库并在脚本中使用它,例如:
from java.lang import System
import sys
# Required : Appending to sys.path to refer to python libraries
if sys.path.count('__pyclasspath__/Lib') == 1:
service.log('\nPath to /Lib already exists\n')
else :
service.log('\nExtend path to /Lib \n')
sys.path.append('__pyclasspath__/Lib')
import socket
try:
#create an AF_INET, STREAM socket (TCP)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
service.log('\nsocket created\n')
except socket.error, msg:
service.log('\nFailed to create socket. Error code: ' + str(msg[0]) + ' , Error message : ' + msg[1] + '\n')
一旦执行,您应该会在日志中看到类似于以下内容(前提是自动脚本日志记录功能正常):
07 Jun 2020 15:18:04:949 [DEBUG] putting System value <type 'java.lang.System'>
07 Jun 2020 15:18:04:949 [DEBUG] putting sys value <module 'sys' (built-in)>
07 Jun 2020 15:18:04:949 [DEBUG] getting sys
07 Jun 2020 15:18:04:949 [DEBUG] putting socket value <module 'socket' from '__pyclasspath__/Lib/socket.py'>
07 Jun 2020 15:18:04:949 [DEBUG] getting socket
07 Jun 2020 15:18:04:949 [DEBUG] getting socket
07 Jun 2020 15:18:04:949 [DEBUG] getting socket
07 Jun 2020 15:18:04:949 [DEBUG] putting s value <socket._socketobject object at 0x5>
07 Jun 2020 15:18:04:949 [DEBUG] execution completed for cached compiled script MXC_SOCKET for launch point MXC_SOCKET_LP
07 Jun 2020 15:18:04:949 [DEBUG] Path to /Lib already existssocket created