Tomcat 8 JTDS 数据源的配置
Tomcat 8 configuration for JTDS DataSource
我是使用 Tomcat 8 设置数据源的新手,遇到了问题。这是我的配置:
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
我收到以下错误:
ClassNotFoundException: org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory
- 这似乎可以通过将
tomcat-dbcp.jar
从他们网站的 apache-tomcat-8.0.36.zip
文件复制到 $CATALINA_HOME/lib
来解决
然后:
java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
我快被这个搞疯了...!
要重现,只需在 AWS 上启动一个 AMI 实例,安装 JTDS 驱动程序并尝试连接到 SQL 服务器。
事实证明它更简单。
context.xml
文件需要放在 META-INF/
子目录中,而不是 .war
文件中的 WEB-INF/
子目录。
我是使用 Tomcat 8 设置数据源的新手,遇到了问题。这是我的配置:
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
我收到以下错误:
ClassNotFoundException: org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory
- 这似乎可以通过将
tomcat-dbcp.jar
从他们网站的apache-tomcat-8.0.36.zip
文件复制到$CATALINA_HOME/lib
来解决
- 这似乎可以通过将
然后:
java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
我快被这个搞疯了...!
要重现,只需在 AWS 上启动一个 AMI 实例,安装 JTDS 驱动程序并尝试连接到 SQL 服务器。
事实证明它更简单。
context.xml
文件需要放在 META-INF/
子目录中,而不是 .war
文件中的 WEB-INF/
子目录。