Mondrian XML / A服务器错误(应用程序适用于Olap4J API)

时间:2015-03-03 16:51:06

标签: mondrian xmla

我已经在JBoss上设置了Mondrian,并且在通过Olap4J API运行MDX语句时工作正常。但是当我将Mondrian设置为XML / A服务器时,我尝试使用URL http://localhost:8080/olap/xmla与Warehouse Explorer(又名Rex)连接时,会在下面(在服务器控制台中)获得异常。

Rex中的错误是:

enter image description here

这是我的datasources.xml

<DataSource>
    <DataSourceName>Mondrian</DataSourceName>
    <DataSourceDescription>Mondrian XMLA</DataSourceDescription>
    <URL>http://localhost:8080/olap/xmla</URL>
    <DataSourceInfo>Provider=mondrian;Jdbc=jdbc:mysql://localhost:3306/foodmart;JdbcUser=uuuuu;JdbcPassword=pppp;JdbcDrivers=com.mysql.jdbc.Driver;</DataSourceInfo>
    <ProviderName>Mondrian</ProviderName>
    <ProviderType>MDP</ProviderType>
    <AuthenticationMode>Unauthenticated</AuthenticationMode>
    <Catalogs>
        <Catalog name="FoodMart">
            <Definition>/WEB-INF/FoodMart.xml</Definition>
        </Catalog>
    </Catalogs>
</DataSource>

这是例外:

mondrian.olap.MondrianException: Mondrian错误:连接字符串必须包含属性&#39;目录&#39;或财产&#39; CatalogContent&#39;     在mondrian.resource.MondrianResource $ _Def1.ex(MondrianResource.java:994)[mondrian-3.9.0.0-213.jar:]     at mondrian.rolap.RolapSchemaPool.getSchemaContent(RolapSchemaPool.java:268)[mondrian-3.9.0.0-213.jar:]     在mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:135)[mondrian-3.9.0.0-213.jar:]     在mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:67)[mondrian-3.9.0.0-213.jar:]     在mondrian.rolap.RolapConnection。(RolapConnection.java:161)[mondrian-3.9.0.0-213.jar:]     在mondrian.rolap.RolapConnection。(RolapConnection.java:91)[mondrian-3.9.0.0-213.jar:]     at mondrian.olap.DriverManager.getConnection(DriverManager.java:113)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     at mondrian.olap.DriverManager.getConnection(DriverManager.java:69)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     在mondrian.olap4j.MondrianOlap4jConnection。(MondrianOlap4jConnection.java:162)[mondrian-3.9.0.0-213.jar:]     在mondrian.olap4j.FactoryJdbc4Plus $ AbstractConnection。(FactoryJdbc4Plus.java:323)[mondrian-3.9.0.0-213.jar:]     在mondrian.olap4j.FactoryJdbc41Impl $ MondrianOlap4jConnectionJdbc41。(FactoryJdbc41Impl.java:118)[mondrian-3.9.0.0-213.jar:]     at mondrian.olap4j.FactoryJdbc41Impl.newConnection(FactoryJdbc41Impl.java:32)[mondrian-3.9.0.0-213.jar:]     在mondrian.olap4j.MondrianOlap4jDriver.connect(MondrianOlap4jDriver.java:134)[mondrian-3.9.0.0-213.jar:]     在java.sql.DriverManager.getConnection(DriverManager.java:571)[rt.jar:1.7.0_71]     在java.sql.DriverManager.getConnection(DriverManager.java:187)[rt.jar:1.7.0_71]     at mondrian.server.FileRepository.getConnection(FileRepository.java:178)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     at mondrian.server.FileRepository.getConnection(FileRepository.java:129)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     at mondrian.server.MondrianServerImpl.getConnection(MondrianServerImpl.java:264)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     在mondrian.xmla.XmlaHandler.getConnection(XmlaHandler.java:2945)[mondrian-3.9.0.0-213.jar:]     在mondrian.xmla.XmlaHandler.getConnection(XmlaHandler.java:177)[mondrian-3.9.0.0-213.jar:]     at mondrian.xmla.Rowset.populate(Rowset.java:219)[mondrian-3.9.0.0-213.jar:]     at mondrian.xmla.Rowset.unparse(Rowset.java:194)[mondrian-3.9.0.0-213.jar:]     在mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2867)[mondrian-3.9.0.0-213.jar:]     在mondrian.xmla.XmlaHandler.process(XmlaHandler.java:671)[mondrian-3.9.0.0-213.jar:]     at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:507)[mondrian-3.9.0.0-213.jar:]     在mondrian.xmla.XmlaServlet.doPost(XmlaServlet.java:318)[mondrian-3.9.0.0-213.jar:]     在javax.servlet.http.HttpServlet.service(HttpServlet.java:754)[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]     在javax.servlet.http.HttpServlet.service(HttpServlet.java:847)[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)[jbossweb-7.0.13.Final.jar:]     在org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)[jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]     在org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)[jboss-as-web-7.1.1.Final.jar:7.1.1.Final]     在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)[jbossweb-7.0.13.Final.jar:]     在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)[jbossweb-7.0.13.Final.jar:]     在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:671)[jbossweb-7.0.13.Final.jar:]     在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:930)[jbossweb-7.0.13.Final.jar:]     在java.lang.Thread.run(Thread.java:745)[rt.jar:1.7.0_71]

11:34:33,441错误[mondrian.xmla.XmlaServlet](http-localhost-127.0.0.1-8080-1)处理XML / A消息时出错:mondrian.xmla.XmlaException:Mondrian错误:XMLA发现粗略结果错误     在mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2873)[mondrian-3.9.0.0-213.jar:]     在mondrian.xmla.XmlaHandler.process(XmlaHandler.java:671)[mondrian-3.9.0.0-213.jar:]     at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:507)[mondrian-3.9.0.0-213.jar:]     在mondrian.xmla.XmlaServlet.doPost(XmlaServlet.java:318)[mondrian-3.9.0.0-213.jar:]     在javax.servlet.http.HttpServlet.service(HttpServlet.java:754)[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]     在javax.servlet.http.HttpServlet.service(HttpServlet.java:847)[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)[jbossweb-7.0.13.Final.jar:]     在org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)[jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]     在org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)[jboss-as-web-7.1.1.Final.jar:7.1.1.Final]     在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[jbossweb-7.0.13.Final.jar:]     在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)[jbossweb-7.0.13.Final.jar:]     在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)[jbossweb-7.0.13.Final.jar:]     在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:671)[jbossweb-7.0.13.Final.jar:]     在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:930)[jbossweb-7.0.13.Final.jar:]     在java.lang.Thread.run(Thread.java:745)[rt.jar:1.7.0_71] 引起:mondrian.olap.MondrianException:Mondrian错误:内部错误:找不到合适的连接     在mondrian.resource.MondrianResource $ _Def0.ex(MondrianResource.java:974)[mondrian-3.9.0.0-213.jar:]     at mondrian.olap.Util.newInternal(Util.java:2397)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     at mondrian.olap.Util.newError(Util.java:2412)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     at mondrian.server.FileRepository.getConnection(FileRepository.java:143)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     at mondrian.server.MondrianServerImpl.getConnection(MondrianServerImpl.java:264)[mondrian-3.9.0.0-213.jar:3.9.0.0-213]     在mondrian.xmla.XmlaHandler.getConnection(XmlaHandler.java:2945)[mondrian-3.9.0.0-213.jar:]     在mondrian.xmla.XmlaHandler.getConnection(XmlaHandler.java:177)[mondrian-3.9.0.0-213.jar:]     at mondrian.xmla.Rowset.populate(Rowset.java:219)[mondrian-3.9.0.0-213.jar:]     at mondrian.xmla.Rowset.unparse(Rowset.java:194)[mondrian-3.9.0.0-213.jar:]     在mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2867)[mondrian-3.9.0.0-213.jar:]     ......还有19个

1 个答案:

答案 0 :(得分:1)

这就是我解决这个问题的方法:你必须将Catalog添加到DataSourceInfo(除Catalog元素之外):

提供商=蒙德里安;的Jdbc = JDBC:MySQL的://本地主机:3306 /的FoodMart; JdbcUser = UUUUU; JdbcPassword = PPPPP; JdbcDrivers = com.mysql.jdbc.Driver;的目录= / WEB-INF /的FoodMart .XML