带有 wsadmin 的 Jython:WASX7017E com.ibm.ws.scripting.ScriptingException:无效的对象名称
Jython with wsadmin: WASX7017E com.ibm.ws.scripting.ScriptingException: Invalid object name
我有一个调用 wsadmin 库来配置 WAS 服务器的 Jython 脚本。
我有这些功能:
def createWasObject(was_object_type, was_path, object_params):
if isinstance(was_path, basestring):
was_path = AdminConfig.getid(was_path)
str_params = '['
for k,v in object_params.items():
str_params = str_params + '[' + k + ' "' + v + '"] '
str_params = str_params + ']'
return AdminConfig.create(was_object_type, was_path, str_params)
def createJdbcProviders(was_path, jdbc_providers):
was_object_type = 'JDBCProvider'
for jdbc_provider in jdbc_providers:
jdbc = createWasObject(was_object_type, was_path, jdbc_provider['params'])
print jdbc
for datasource in jdbc_provider['datasources']:
ds = createWasObject('Datasource', jdbc, datasource['params'])
print
"print jdbc" 打印:
Teradata JDBC Provider(cells/jsr-websphere-1Cell01/nodes/jsr-websphere-1Node01/servers/jsr-business|resources.xml#JDBCProvider_1444648929602)"
这看起来像是正确的对象 ID
但是,当使用它创建数据源时,出现以下错误:
WASX7017E: Exception reçue lors de l'exécution du fichier "/root/jsr_auto_deployment/jsr.py" ; informations sur l'exception : com.ibm.ws.scripting.ScriptingException: Invalid object name: "Teradata JDBC Provider(cells/jsr-websphere-1Cell01/nodes/jsr-websphere-1Node01/servers/jsr-business|resources.xml#JDBCProvider_1444648929602)"
我正在通过瘦客户端使用 Jython 2.7。重用 AdminConfig.create() 返回的对象在 Jython 脚本 运行 到 wsadmin.sh
中运行良好
我的问题是在那一行:
was_path = AdminConfig.getid(was_path)
大多数时候我传递的是字符串,但这次我已经在使用 ID。所以我删除了函数中的 AdminConfig.getid 并仅在必要时将其添加到调用中。
我有一个调用 wsadmin 库来配置 WAS 服务器的 Jython 脚本。
我有这些功能:
def createWasObject(was_object_type, was_path, object_params):
if isinstance(was_path, basestring):
was_path = AdminConfig.getid(was_path)
str_params = '['
for k,v in object_params.items():
str_params = str_params + '[' + k + ' "' + v + '"] '
str_params = str_params + ']'
return AdminConfig.create(was_object_type, was_path, str_params)
def createJdbcProviders(was_path, jdbc_providers):
was_object_type = 'JDBCProvider'
for jdbc_provider in jdbc_providers:
jdbc = createWasObject(was_object_type, was_path, jdbc_provider['params'])
print jdbc
for datasource in jdbc_provider['datasources']:
ds = createWasObject('Datasource', jdbc, datasource['params'])
print
"print jdbc" 打印:
Teradata JDBC Provider(cells/jsr-websphere-1Cell01/nodes/jsr-websphere-1Node01/servers/jsr-business|resources.xml#JDBCProvider_1444648929602)"
这看起来像是正确的对象 ID
但是,当使用它创建数据源时,出现以下错误:
WASX7017E: Exception reçue lors de l'exécution du fichier "/root/jsr_auto_deployment/jsr.py" ; informations sur l'exception : com.ibm.ws.scripting.ScriptingException: Invalid object name: "Teradata JDBC Provider(cells/jsr-websphere-1Cell01/nodes/jsr-websphere-1Node01/servers/jsr-business|resources.xml#JDBCProvider_1444648929602)"
我正在通过瘦客户端使用 Jython 2.7。重用 AdminConfig.create() 返回的对象在 Jython 脚本 运行 到 wsadmin.sh
中运行良好我的问题是在那一行: was_path = AdminConfig.getid(was_path)
大多数时候我传递的是字符串,但这次我已经在使用 ID。所以我删除了函数中的 AdminConfig.getid 并仅在必要时将其添加到调用中。