我已经在JBoss上设置了Mondrian,并且在通过Olap4J API运行MDX语句时工作正常。但是当我将Mondrian设置为XML / A服务器时,我尝试使用URL http://localhost:8080/olap/xmla
与Warehouse Explorer(又名Rex)连接时,会在下面(在服务器控制台中)获得异常。
Rex中的错误是:
这是我的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个
答案 0 :(得分:1)
这就是我解决这个问题的方法:你必须将Catalog添加到DataSourceInfo(除Catalog
元素之外):
提供商=蒙德里安;的Jdbc = JDBC:MySQL的://本地主机:3306 /的FoodMart; JdbcUser = UUUUU; JdbcPassword = PPPPP; JdbcDrivers = com.mysql.jdbc.Driver;的目录= / WEB-INF /的FoodMart .XML 强>