在使用 WLST Offline 时,您似乎不能在名称中使用斜杠。隐藏在WLST Documentation ...
When using WLST offline, the following characters are not valid in names of
management objects: period (.), forward slash (/), or backward slash (\).
我建议不要在数据源名称中使用“jdbc/”,您可以在 DS 的 JNDI 名称中使用它,因为这是客户端用来查找它的值。
更新:
我曾将关于使用括号的评论解释为指的是在线 WLST,但做了更多的实验后你是正确的,但事实并非如此。我使用控制台创建了一个名为“jdbc/test”的数据源。然后在线使用 WLST 我可以直接 cd 到它...
wls:/soa_domain/serverConfig> cd ('JDBCSystemResources/jdbc/test/JDBCResource/jdbc/test')
wls:/soa_domain/serverConfig/JDBCSystemResources/jdbc/test/JDBCResource/jdbc/test> ls()
dr-- InternalProperties
dr-- JDBCConnectionPoolParams
dr-- JDBCDataSourceParams
dr-- JDBCDriverParams
dr-- JDBCOracleParams
dr-- JDBCXAParams
-r-- Name jdbc/test
-r-- Version null
-r-x isSet Boolean : String(propertyName)
-r-x unSet Void : String(propertyName)
然后,我在名称的两次出现周围使用括号尝试离线使用相同的方法,但失败了。然后我尝试一次向上移动一个元素,前三个成功(所以括号肯定是离线使用的)......
wls:/offline/soa_domain>cd ('JDBCSystemResource/(jdbc/test)/JdbcResource')
wls:/offline/soa_domain/JDBCSystemResource/(jdbc/test)/JdbcResource>ls()
drw- jdbc/test
这是最后一个失败的元素。没有括号,你会得到“没有这样的元素”错误......
wls:/offline/soa_domain/JDBCSystemResource/(jdbc/test)/JdbcResource>cd ('jdbc/test')
Error: cd() failed. Do dumpStack() to see details.
wls:/offline/dev2_soa_domain/JDBCSystemResource/(jdbc/test)/JdbcResource>dumpStack()
com.oracle.cie.domain.script.jython.WLSTException:
com.oracle.cie.domain.script.ScriptException: No such element JdbcResource named jdbc
用括号你会得到......
wls:/offline/soa_domain/JDBCSystemResource/(jdbc/test)/JdbcResource>cd ('(jdbc/test)')
Error: cd() failed. Do dumpStack() to see details.
wls:/offline/soa_domain/JDBCSystemResource/(jdbc/test)/JdbcResource>dumpStack()
com.oracle.cie.domain.script.jython.WLSTException: java.lang.UnsupportedOperationException: Could not create generic operation:JdbcResource
....
Caused by: java.lang.UnsupportedOperationException: Could not create generic operation:JdbcResource
at com.oracle.cie.domain.operation.OperationBuilder.createConfigOperation(OperationBuilder.java:339)
总而言之,我认为您在那里发现了一个错误。我认为您的选择是在线使用 WLST 或在名称中不使用斜杠,尽管在 JNDI 名称中使用斜杠仍然很好(并且确实是标准做法)。