1

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: "/root/jsr_auto_deployment/jsr.py" で例外が発生しました。例外に関する情報: com.ibm.ws.scripting.ScriptingException: 無効なオブジェクト名: "Teradata JDBC Provider(cells/jsr-websphere-1Cell01/nodes/jsr-websphere-1Node01/servers/jsr-business|resources.xml #JDBCProvider_1444648929602)"

シン クライアント経由で Jython 2.7 を使用しています。AdminConfig.create() によって返されたオブジェクトの再利用は、wsadmin.sh を介して実行される Jython スクリプトでうまく機能していました。

4

1 に答える 1