【问题标题】:Tomcat6 - Any difference in datasource when run as standalone app and as service?Tomcat6 - 作为独立应用程序和服务运行时数据源有什么区别?
【发布时间】:2012-05-21 14:31:20
【问题描述】:

我一直将 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)

有什么想法吗?提前谢谢..

【问题讨论】:

    标签: windows jdbc tomcat6


    【解决方案1】:

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

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

    【讨论】:

    • 我在发布这个问题大约一个小时后才知道......无论如何,你是对的......这是系统 DSN 与用户 DSN 的问题......
    猜你喜欢
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2010-11-15
    相关资源
    最近更新 更多