我正在尝试自动化部署过程,并且我想使用 wsadmin (jython) 将一些文件上传到 WAS。我的问题是是否可以将文件从我的独立 wsadmin 上传到远程 WAS 服务器。如果是这样,是否可以在应用程序之外的某个地方上传文件(fe./opt/IBM/WebSphere/AppServer/temp)?我不想将它上传到特定的配置文件,而是上传到服务器根目录。
当我部署应用程序时,它会将war/ear 文件复制到WAS,那么是否有一些机制可以上传单独的文件?
非常感谢
AntAgent 允许您上传任何文件,前提是文件的内容可以适合内存:
在 wsadmin 中,您需要使用对象invoke_jmx
的方法AdminControl
。
from java.lang import String
import jarray
fileContent = 'hello!'
antAgent = AdminControl.makeObjectName(AdminControl.queryNames('WebSphere:*,type=AntAgent,process=dmgr'))
str = String(fileContent)
bytes = str.getBytes()
AdminControl.invoke_jmx(antAgent, 'putScript', [String('hello.txt'),bytes], jarray.array(['java.lang.String', '[B'], String))
之后,您将在 WAS 配置文件的临时目录中找到“hello.txt”文件。您也可以使用相对路径。