0

我一直将 tomcat 6 作为独立应用程序运行,并使用通过控制面板>管理工具中的“数据源”工具指定的数据源。

今天,我尝试将tomcat安装为服务,以便在pc启动时自动启动。

但是它无法再识别数据源。当我从命令提示符重新启动 tomcat 时,相同的数据源工作。

以下是堆栈跟踪

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified)
    org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
    org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    com.qc.helpers.connection.ConnectionPool.<init>(ConnectionPool.java:38)
    com.qc.main.servlets.TableView.init(TableView.java:47)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    java.lang.Thread.run(Thread.java:619)

有任何想法吗?提前致谢..

4

1 回答 1

1

问题是您使用的是 ODBC 数据源。您很可能创建了用户 DSN 而不是系统 DSN。如果 TomCat 作为服务运行,则 Java 无法访问为您的普通用户帐户定义的 ODBC 数据源。如果您将其定义为系统 DSN,那么它应该具有访问权限。

顺便说一句:如果可能,我建议不要使用 JDBC/ODBC 桥,而是为您的数据库使用实际的 JDBC 驱动程序。

于 2012-05-21T17:12:47.623 回答