有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Tomcat JNDI资源名称别名

是否可以创建具有多个名称(同义词、别名)的JNDI tomcat资源? 差不多

<Resource
      name="jdbc/product-ds"
      alias="jdbc/product-cfg-ds"
      type="com.mchange.v2.c3p0.ComboPooledDataSource"
      ...
/>

我需要这个,因为有两个模块使用相同的数据源,但JNDI名称不同。最简单的解决方案是同步这些名称,但不幸的是目前还不可能


共 (1) 个答案

  1. # 1 楼答案

    你可以这样做。我花了一段时间才想出正确的顺序。您需要做的是在服务器中定义jdbc/产品ds。GlobalNamingResources部分中的xml(tomcat/conf/server.xml)类似于:

        <GlobalNamingResources>
            <Resource name="jdbc/product-ds " auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
              username="scott" password="tiger" maxActive="20" maxIdle="10"
              maxWait="-1"/>
        </GlobalNamingResources>
    

    然后您可以在服务器上下文中重命名它。xml(tomcat/conf/context.xml)

    像这样:

    <ResourceLink 
            name="jdbc/product-cfg-ds"
            global="jdbc/product-ds"
            type="javax.sql.DataSource"/>
    

    然后为服务器上部署的所有应用程序重命名全局名称。我不认为全局jdbc/产品ds在任何应用程序中都可用,如果您确实需要它,您需要添加:

    <ResourceLink 
            name="jdbc/product-ds"
            global="jdbc/product-ds"
            type="javax.sql.DataSource"/>