首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven tomcat:通过JNDI运行插件和数据源配置

Maven tomcat:通过JNDI运行插件和数据源配置
EN

Stack Overflow用户
提问于 2015-01-04 15:28:28
回答 2查看 4.8K关注 0票数 4

我正在尝试使用Spring DataSource配置DB JndiObjectFactoryBean,因此,我有tomcat:运行用于本地测试的插件和位于src/ test /resources/maven-tomcat- plugin /中的context.xml文件。

代码语言:javascript
复制
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <contextFile>${basedir}/src/test/resources/maven-tomcat-plugin/context.xml</contextFile>
  </configuration>
</plugin>

Context.xml

代码语言:javascript
复制
<?xml version='1.0' encoding='utf-8'?>
<Context>
<ResourceLink name="jdbc/MyLocalDB" global="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" />
<Resource name="jdbc/MyDB" global="jdbc/MyDB" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc" username="" password="" maxActive="100" maxIdle="20" minIdle="5"
    maxWait="10000" />
</Context>

但是我有:名称jdbc/TestDB在这个上下文中没有绑定

看起来contextPath什么也没给。

有人有伊迪娅怎么解决吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-05 09:19:34

<ResourceLink>元素的目的是构造一个指向全局资源的链接,该链接应该在server.xml文件下声明,并且如下所示:

代码语言:javascript
复制
<GlobalNamingResources>
  <Resource name="jdbc/DatabaseName" auth="Container" type="javax.sql.DataSource"
          username="dbUsername" password="dbPasswd"
          url="jdbc:postgresql://localhost/dbname"
          driverClassName="org.postgresql.Driver"
          initialSize="5" maxWait="5000"
          maxActive="120" maxIdle="5"
          validationQuery="select 1"
          poolPreparedStatements="true"/>
</GlobalNamingResources/>

注意,name global 属性必须与ResourceLink元素.属性匹配。

因此,要么声明匹配的全局资源,要么删除resource并像您一样使用声明的资源。

票数 0
EN

Stack Overflow用户

发布于 2019-06-14 21:45:49

您可以尝试以下配置(不要忘记添加依赖项):

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>9090</port>
        <path>/myapp</path>
        <contextFile>${basedir}/tomcat7-maven-plugin/context.xml</contextFile>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>
    </dependencies>
</plugin>

context.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Context debug="true" reloadable="true" crossContext="true"
    antiJARLocking="true">  
    <Resource name="jdbc/myDS" auth="Container"
      type="javax.sql.DataSource" maxActive="100" maxIdle="30"
      maxWait="10000" validationQuery="select sysdate from dual"
      username="userdb" password="pass123"
      driverClassName="oracle.jdbc.driver.OracleDriver"
      url="jdbc:oracle:thin:@server:1521:sid" />
</Context>

有关mor信息,您可以查看Apache网页https://tomcat.apache.org/maven-plugin-2.2/tomcat7-maven-plugin/run-mojo.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27767067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档