0

我多次尝试在我的 Web 应用程序和 Derby 之间建立连接,但我在 Eclipse 控制台中收到了这些错误消息:

INFO: Server startup in 3772 ms

ERROR: Cannot load JDBC driver class 'org.apache.derby.jdbc.ClientDriver'

ERROR: Cannot load JDBC driver class 'org.apache.derby.jdbc.ClientDriver'

11/02/2011 19:08:53 org.apache.catalina.core.StandardContext reload 


My class and database definition is showed bellow:

// Obtain our environment naming context            
javax.naming.Context initCtx = new InitialContext();

javax.naming.Context envCtx = (Context) initCtx.lookup("java:comp/env");


// Look up our data source by the name we gave it when we created it.
// In this case that's "jdbc/customer".
javax.sql.DataSource ds = (DataSource) envCtx.lookup("jdbc/customer");

conn = ds.getConnection();

And my web.xml and context are showed bellow.

in context.xml ...

Resource name="jdbc/customer" 
auth="Container"
type="javax.sql.DataSource"
username="qwert"
password="asdf"
driverClassName="org.apache.derby.jdbc.ClientDriver"
url="jdbc:derby://localhost:1527/C:\\testes_db\\customer;create=true;"
       maxActive="8"

and in the web.xml ...

res-ref-name jdbc/customer

res-type javax.sql.DataSource

res-auth Container


-- my second attempt 

resource-env-ref-name jdbc/customer

resource-env-ref-type javax.sql.DataSource

我在 Windows 中使用带有 eclipse wtp (europa) 的 tomcat 6。而且我已经将 derby.jar 和 derbclinet.jar 放在了 WEB_INF\lib 目录中......

我可以做些什么来解决这个问题?

谢谢!

4

1 回答 1

4

由于您在 context.xml 中配置 DataSource,因此管理它的是 Tomcat,而不是您的 webapp。

您必须将 JDBC 驱动程序 derbyclient.jar 放在 $TOMCAT_HOME/lib/ 目录中,而不是 yourwebapp/WEB-INF/lib/

于 2011-02-11T22:31:37.637 回答