【问题标题】:Could not load Jdbc Driver com.sqlserver.jdbc.Driver无法加载 Jdbc 驱动程序 com.sqlserver.jdbc.Driver
【发布时间】:2014-01-14 07:32:47
【问题描述】:

安装和配置 Pentaho Mondrian 后抛出以下异常(完整堆栈跟踪)

我使用的是 SQL Server Driver 4.0

com.tonbeller.jpivot.olap.model.OlapException:无法加载 Jdbc 驱动程序 com.sqlserver.jdbc.Driver

com.tonbeller.jpivot.olap.model.OlapException: Could not load Jdbc Driver com.sqlserver.jdbc.Driver
at com.tonbeller.jpivot.mondrian.MondrianModel.initialize(MondrianModel.java:455)
at com.tonbeller.jpivot.olap.model.OlapModelDecorator.initialize(OlapModelDecorator.java:132)
at com.tonbeller.jpivot.tags.OlapModelProxy$MyState.initialize(OlapModelProxy.java:77)
at com.tonbeller.jpivot.tags.StackStateManager.initializeAndShow(StackStateManager.java:76)
at com.tonbeller.jpivot.tags.OlapModelProxy.initializeAndShow(OlapModelProxy.java:160)
at com.tonbeller.jpivot.tags.OlapModelTag.doEndTag(OlapModelTag.java:81)
at org.apache.jsp.WEB_002dINF.queries.colors_jsp._jspx_meth_jp_005fmondrianQuery_005f0(colors_jsp.java:127)
at org.apache.jsp.WEB_002dINF.queries.colors_jsp._jspService(colors_jsp.java:69)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at com.tonbeller.wcf.utils.IncludeTag.doStartTag(IncludeTag.java:59)
at org.apache.jsp.testpage_jsp._jspx_meth_wcf_005finclude_005f0(testpage_jsp.java:287)
at org.apache.jsp.testpage_jsp._jspService(testpage_jsp.java:127)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.tonbeller.wcf.controller.RequestFilter$MyHandler.normalRequest(RequestFilter.java:139)
at com.tonbeller.wcf.controller.RequestSynchronizer.handleRequest(RequestSynchronizer.java:127)
at com.tonbeller.wcf.controller.RequestFilter.doFilter(RequestFilter.java:263)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:744)

下面是我的 mondrian.properties

mondrian.rolap.aggregates.Use=true
mondrian.rolap.aggregates.Read=true
mondrian.native.topcount.enable=true
mondrian.native.filter.enable=true
mondrian.result.limit=50000

Provider=Mondrian:Jdbc=jdbc:sqlserver://localhost:1433;databaseName=foodmart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.microsoft.sqlserver.jdbc.SQLServerDriver;

下面是我的 web.xml

<context-param>
<param-name>connectString</param-name>
<param-value>Provider=Mondrian;Jdbc=jdbc:sqlserver://localhost/foodmart;JdbcUser=sa;JdbcPassword=adminpassword; Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.microsoft.sqlserver.jdbc.SQLServerDriver;</param-value>
</context-param>

下面是我的 datasources.xml

<DataSourceInfo>Provider=Mondrian:Jdbc=jdbc:sqlserver://localhost:1433;JdbcUser=sa;JdbcPassword=adminpassword;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.microsoft.sqlserver.jdbc.SQLServerDriver;    </DataSourceInfo>
<ProviderName>Mondrian</ProviderName>
<ProviderType>MDP</ProviderType>

我已经将 jdbc 驱动程序(jar 文件)保存在 \webapps\mondrian\WEB-INF\lib 文件夹中

【问题讨论】:

    标签: jdbc mondrian sqljdbc


    【解决方案1】:

    MSSQL 驱动程序的正确类名是com.microsoft.sqlserver.jdbc.SQLServerDriver。我建议您在项目中搜索文本 com.sqlserver.jdbc.Driver 并将其替换为正确的类名。

    另外,对于我来说,jTDS 驱动程序被证明比 MS 自己的驱动程序工作得更好。

    【讨论】:

    • jTDS 的字符串是什么??
    • 在所有属性文件中,字符串仅为com.microsoft.sqlserver.jdbc.SQLServerDriver
    • @DhanishJose for jTDS 使用类名 net.sourceforge.jtds.jdbc.Driver 和 url jdbc:jtds:://[:][/] [;=[;...]] 如此处所述jtds.sourceforge.net/faq.html#urlFormat
    • @DhanishJose 但我认为它必须位于属性或 xml 文件中的某个位置,或者硬编码到 jsp 中。
    猜你喜欢
    • 2013-03-03
    • 2015-10-10
    • 2017-05-17
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    相关资源
    最近更新 更多