是否有必要在Resource标签中提及存档的名称?

时间:2012-07-17 09:31:41

标签: java database java-ee tomcat derby

要在使用derby时连接到Tomcat数据库,我已下载the jar of core Apache Derby database engine (version : 10.9.1.0)。我把这个jar文件保存在Tomcat的lib文件夹下。

enter image description here

现在我被告知要在 context.xml Tomcat 中添加以下内容。

<Resource name="jdbc/PollDatasource" auth="Container" type="javax.sql.DataSource"
    driverClassName="org.apache.derby.jdbc.EmbeddedDriver" 
    url="jdbc:derby://localhost:1527/polldatabase;create=true"
    username="suhail" password="suhail"
    maxActive="20" maxIdle="10" maxWait="-1" />
  • 这个标签有什么作用?我的意思是它的意思?

  • 虽然我下载的Jar文件包含模式org.apache.derby.jdbc.EmbeddedDriver,但在这个标签中我提到了我下载的jar?是否需要在标记中添加存​​档名称?

1 个答案:

答案 0 :(得分:3)

将jar放在Tomcat lib文件夹下后,Tomcat会自动加载它并将其放入类路径中,以便在Tomcat上运行的所有应用程序都知道这个jar。

XML中的定义仅表示您定义了数据源。数据源在应用程序服务器中用于管理数据库连接池,因此您不必使用数据源,而是使用普通JDBC,而不是使用普通JDBC。

在您定义的xml中:driverClassName="org.apache.derby.jdbc.EmbeddedDriver"并且由于您将包含此类的驱动程序jar放在lib文件夹中,它将知道在哪里查找它而无需告诉它在哪里。

请注意,将jar放在Tomcat lib下并不总是最好的解决方案,因为像我说的那样,tomcat下的所有应用程序都知道这个jar,如果有一个应用程序已经使用了不同版本的jar,它可能会导致冲突。

更好的解决方案可能是将jar放在WEB-INF / lib下,这样只有这个应用程序知道jar。