【问题标题】:WLST offline jdbc name contains slashWLST 离线 jdbc 名称包含斜杠
【发布时间】:2015-08-05 22:36:00
【问题描述】:

我正在尝试使用 WLST 离线创建用于 weblogic 的数据源 jdbc。

cd('/')

create('jdbc/test', 'JDBCSystemResource')

cd('JDBCSystemResource/(jdbc/test)/JdbcResource/(jdbc/test)')

但我不断收到错误消息:

没有名为 jdb 的 JdbcResource 元素

在 oracle 网站上,他们说要使用括号,但在 JdbcResource 部分仍然失败。

【问题讨论】:

    标签: jdbc weblogic offline slash wlst


    【解决方案1】:

    在使用 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 名称中使用斜杠仍然很好(并且确实是标准做法)。

    【讨论】:

    • 但您可以在下面阅读以下内容: 如果您需要 cd 到名称包含正斜杠 (/) 的管理对象,请将对象名称括在括号中。例如:cd('JMSQueue/(jms/REGISTRATION_MDB_QUEUE)')
    • 东西周围的大括号在导航包含“/”的路径时起作用。
    【解决方案2】:

    您的 MBean 导航需要修改...

    你能试试下面给出的这个示例脚本吗?

    http://wlstbyexamples.blogspot.in/2010/02/configuring-generic-datasource.html

    【讨论】:

      猜你喜欢
      • 2016-11-19
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2022-07-07
      相关资源
      最近更新 更多