从WSADMIN运行Jython脚本时出错

时间:2014-01-03 12:30:18

标签: websphere jython wsadmin

我正在从wsadmin运行Jython脚本。这是它抛出错误的部分。

SCRIPT

..
..
objNameString = AdminControl.completeObjectName('WebSphere:type=Server,*') 
NODE_NAME=AdminControl.getAttribute(objNameString, 'nodeName') 
CELL_NAME=AdminControl.getCell()
SERVER_NAME= "MyAppServer"
..
..
# Start Web application
print "Starting Web Application..."
appManager = AdminControl.queryNames('cell='+ CELL_NAME +',node='+ NODE_NAME +',type=ApplicationManager,process='+ SERVER_NAME +',*')
print appManager
AdminControl.invoke(appManager, 'startApplication', 'AppName')
print "Web Application Started..."

错误

Starting Web Application...
WASX7017E: Exception received while running file "/scratch/py/CreateWPSDomain.py"; exception information: com.ibm.ws.scripting.ScriptingException: WASX7025E: Error found in String ""; cannot create ObjectName.

我连接的方式有什么问题吗?当值为空或未正确注册时,似乎会出现这样的错误。

更新:是否有我可以参考的示例jython脚本。我的需求:1。创建服务器> 2.安装war文件> 3.创建数据源> 4.启动服务器> 5.启动应用程序。

5 个答案:

答案 0 :(得分:4)

请确保您的服务器已启动,我认为当您调用该命令时...服务器尚未启动。延迟或检查服务器是否已启动...然后发出命令

答案 1 :(得分:2)

错误消息显示无法从空字符串创建ObjectName。该空字符串是从queryNames返回的。

试试这个:

appManager = AdminControl.queryNames('WebSphere:cell='+ CELL_NAME +',node='+ NODE_NAME +',type=ApplicationManager,process='+ SERVER_NAME +',*')

BTW:使用WDR库(http://wdr.github.io/WDR/),您的脚本会简单得多。通过一些其他改进,它可以看起来如下:

SERVER_NAME= "MyAppServer"

# Start Web application
print "Starting Web Application..."
appManager = getMBean1(process = SERVER_NAME, type = 'ApplicationManager')
print appManager
appManager.startApplication('AppName')
print "Web Application Started..."

披露:我是WDR的主要贡献者之一。

答案 2 :(得分:0)

此行引发错误:

AdminControl.invoke(appManager, 'startApplication', 'AppName')

检查您的appManager变量,并确保它不为空。  如果找不到匹配项,AdminControl.queryNames(..)将返回空字符串。

AdminControl.invoke(..)要求将MBean描述符(对象名称)字符串作为第一个参数传递,并且您收到的错误是wsadmin,告诉您无法使用收到的内容解析MBean。错误的WASX7025E: Error found in String ""部分告诉您它收到了一个空字符串("")作为MBean描述符。

答案 3 :(得分:0)

/ opt / IBM / WebSphere / AppServer / profiles / Dmgr01 / bin> ./ wsadmin.sh -conntype NONE

WASX7357I:根据请求,此脚本编制客户端未连接到任何服务器进程。某些配置和应用程序操作将在本地模式下可用。

WASX7029I:如需帮助,请输入:" $帮助" wsadmin> wsadmin> wsadmin> securityon wsadmin IWWWWW WASX7015E:异常运行命令:" securityon wsadmin IWWWWW&#34 ;;异常信息: com.ibm.ws.scripting.ScriptingException:AdminControl服务不可用

的wsadmin> securityoff 现在,LOCAL OS安全性已关闭,但您需要重新启动server1才能使其受到影响。

的wsadmin>

答案 4 :(得分:0)

就我而言,服务器已启动,但仍然出现此错误。
问题是我没有连接到任何服务器,因为通过wsadmin运行脚本时,我包括了-conntype NONE。
解决方法是避免-conntype NONE能够运行AdminControl命令
/opt/WebSphere/AppServer/profiles/default/bin/wsadmin.sh -conntype NONE -user -password -f