用于JTDS DataSource的Tomcat 8配置

时间:2016-07-17 05:15:59

标签: java tomcat amazon-ec2 jndi jtds

我不熟悉使用Tomcat 8设置DataSource并遇到问题。这是我的配置:

WEB-INF / web.xml中

<web app ... >
  <servlet> ... </servlet>
  <servlet-mapping> ... </servlet-mapping>
  ...
  <resource-ref>
     <description>My DB</description>
     <res-ref-name>jdbc/mydb</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

WEB-INF / context.xml中

<Context>
  <Resource name="jdbc/mydb"
      auth="Container"
      type="javax.sql.DataSource"
      username="xirt"
      password="*******"
      driverClassName="net.sourceforge.jtds.jdbc.Driver"
      url="jdbc:jtds:sqlserver://xirt.rds.amazonaws.com:1433/mydb"
      maxActive="15"
      maxIdle="3" />
</Context>

程序代码:

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/mydb");
System.out.println("DataSource: "+ds);
Connection connection = ds.getConnection();

我在Amazon EC2上运行,因此使用yum安装了tomcat8:

sudo yum install java-1.8.0
sudo yum install tomcat8

我遇到了以下错误:

  1. ClassNotFoundException: org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory
    • 这似乎是通过将tomcat-dbcp.jar文件从apache-tomcat-8.0.36.zip网站复制到$CATALINA_HOME/lib
    • 来解决的
  2. 然后:

    1. java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
    2. 我会想到这个......!

      要重现,只需在AWS上启动AMI实例,安装JTDS驱动程序并尝试连接到SQL服务器。

1 个答案:

答案 0 :(得分:0)

事实证明它更直接。

context.xml文件需要放在META-INF/子目录中,而不是WEB-INF/文件中的.war子目录。