Websphere 创建数据源时wsadmin控制台中出现错误(NPE)
我正在wsadmin控制台中的jython中以以下方式创建数据源: 首先,我按名称搜索JDBC提供程序: AdminConfig.list('JDBCProvider')中提供程序的Websphere 创建数据源时wsadmin控制台中出现错误(NPE),websphere,jython,websphere-8,wsadmin,Websphere,Jython,Websphere 8,Wsadmin,我正在wsadmin控制台中的jython中以以下方式创建数据源: 首先,我按名称搜索JDBC提供程序: AdminConfig.list('JDBCProvider')中提供程序的。拆分('\r\n'): 如果AdminConfig.showtattribute(提供程序,'name')==提供程序名称: 打印“找到JDBC提供程序:”+提供程序 db2provider=provider 找到JDBC提供程序。现在,我使用以下提供程序创建数据源: dsAttrs=[['name','myDS
。拆分('\r\n'):
如果AdminConfig.showtattribute(提供程序,'name')==提供程序名称:
打印“找到JDBC提供程序:”+提供程序
db2provider=provider
找到JDBC提供程序。现在,我使用以下提供程序创建数据源:
dsAttrs=[['name','myDS1'],['jndiName','jdbc/MY/DS1']]
newDs=AdminConfig.create('DataSource',db2provider,dsAttrs)
但我有一个例外:
WASX7015E:异常运行命令:“newDs”=
create('DataSource',db2provider,dsAttrs');例外
通知:
com.ibm.websphere.management.exception.ConfigServiceException
java.lang.NullPointerException:java.lang.NullPointerException
代码中有什么错误?我将遵循IBM文档和internet上的示例
我使用的是WebSphere 8.5,我猜您已经在Windows上开发了脚本,然后在UNIX/Linux上运行。因此,
.split('\r\n')
在Windows上运行良好,不会分割行。使用.splitlines()
您的脚本将更具可移植性,您不必为'\n'
vs'\r\n'
而烦恼
顺便说一句:通过AdminConfig.getid
可以更快地找到合适的提供者:
#getid将仅返回具有指定名称的JDBCProviders
#然后splitlines将返回匹配对象的数组
#最后[0]将获得第一项
db2provider=AdminConfig.getid('/JDBCProvider:%s/'%providerName).splitlines()[0]
如果db2provider:
dsAttrs=['name','myDS1',['jndiName','jdbc/MY/DS1']]
newDs=AdminConfig.create('DataSource',db2provider,dsAttrs)
其他:
打印“未找到JDBCProvider”
与WDR库()相同的脚本:
#getid1将返回单个JDBCProvider1或失败
db2provider=getid1('/JDBCProvider:%s/'%providerName)
newDs=db2provider.create('DataSource',name='myDS1',jndiName='jdbc/MY/DS1')
甚至更好(幂等):
#getid1将返回单个JDBCProvider1或失败
db2provider=getid1('/JDBCProvider:%s/'%providerName)
ds=db2provider.assure('DataSource',{'name':'myDS1'},jndiName='jdbc/MY/DS1')
坦白:我是WDR贡献者之一。事实上,环境是一样的,所以拆分(“”)在这里不是问题,但无论如何,感谢您简化了我的代码。在简化了它的工作之后,数据源是在saved中创建的。