Bonjour,
J'utilise Mondrian 3.3.0.14703 avec un Tomcat 6.0.33, et une JRE 1.6.0_29.
Ma base de donnée est PostGreSQL 9.1.1.
J'essaie de faire fonctionner les outils de test pour XML/A...
Malheureusement, sans grand succès...
Voici la configuration de mes fichiers:
/mondrian.properties
Code :
1 2 3 4
| mondrian.foodmart.jdbcURL=jdbc:postgresql:5432//localhost/mydb2
mondrian.foodmart.jdbcUser=postgres
mondrian.foodmart.jdbcPassword=myPassword
mondrian.jdbcDrivers=org.postgresql.Driver |
/WEB-INF/web.xml
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
| <?xml version="1.0" encoding="UTF-8"?>
<!--
$Id: //open/mondrian/webapp/WEB-INF/web-jpivot.xml#15 $
This software IS subject TO the terms of the Eclipse Public License v1.0
Agreement, available at the following URL:
http://www.eclipse.org/legal/epl-v10.html.
(C) Copyright 2003-2009 Julian Hyde AND others
ALL Rights Reserved.
You must accept the terms of that agreement TO USE this software.
-->
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Mondrian</display-name>
<description/>
<!-- optional? now in JPivot by default -->
<context-param>
<param-name>contextFactory</param-name>
<param-value>com.tonbeller.wcf.controller.RequestContextFactoryImpl</param-value>
</context-param>
<context-param>
<param-name>connectString</param-name>
<param-value>Provider=mondrian;Jdbc=jdbc:postgresql://localhost:5432/mydb2?user=postgres&password=myPassword;Catalog=/WEB-INF/queries/myDB4.xml;JdbcDrivers=org.postgresql.Driver;</param-value>
</context-param>
<!-- optional
<context-param>
<param-name>chartServlet</param-name>
<param-value>/path/TO/chartServlet</param-value>
</context-param>
-->
<filter>
<filter-name>JPivotController</filter-name>
<filter-class>com.tonbeller.wcf.controller.RequestFilter</filter-class>
<init-param>
<param-name>errorJSP</param-name>
<param-value>/error.jsp</param-value>
<description>URI of error page</description>
</init-param>
<init-param>
<param-name>busyJSP</param-name>
<param-value>/busy.jsp</param-value>
<description>This page IS displayed IF a the user clicks
ON a query before the previous query has finished</description>
</init-param>
<!--
<init-param>
<param-name>forceExtension</param-name>
<param-value>.faces</param-value>
<description>REPLACE .jsp WITH .faces</description>
</init-param>
-->
</filter>
<filter-mapping>
<filter-name>JPivotController</filter-name>
<url-pattern>/testpage.jsp</url-pattern>
</filter-mapping>
<listener>
<listener-class>mondrian.web.taglib.Listener</listener-class>
</listener>
<!-- resources initializer -->
<listener>
<listener-class>com.tonbeller.tbutils.res.ResourcesFactoryContextListener</listener-class>
</listener>
<servlet>
<servlet-name>MDXQueryServlet</servlet-name>
<servlet-class>mondrian.web.servlet.MdxQueryServlet</servlet-class>
<init-param>
<param-name>connectString</param-name>
<param-value>Provider=mondrian;Jdbc=jdbc:postgresql://localhost:5432/mydb2?user=postgres&password=myPassword;Catalog=/WEB-INF/queries/myDB4.xml;JdbcDrivers=org.postgresql.Driver;</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>MondrianXmlaServlet</servlet-name>
<servlet-class>mondrian.xmla.impl.DefaultXmlaServlet</servlet-class>
<init-param>
<param-name>DataSourcesConfig</param-name>
<param-value>/datasources.xml</param-value>
</init-param>
</servlet>
<!-- jfreechart provided servlet -->
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<!-- jfreechart provided servlet -->
<servlet>
<servlet-name>GetChart</servlet-name>
<display-name>GetChart</display-name>
<description>DEFAULT configuration created FOR servlet.</description>
<servlet-class>com.tonbeller.jpivot.chart.GetChart</servlet-class>
</servlet>
<servlet>
<servlet-name>Print</servlet-name>
<display-name>Print</display-name>
<description>DEFAULT configuration created FOR servlet.</description>
<servlet-class>com.tonbeller.jpivot.print.PrintServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/DisplayChart</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Print</servlet-name>
<url-pattern>/Print</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>GetChart</servlet-name>
<url-pattern>/GetChart</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MDXQueryServlet</servlet-name>
<url-pattern>/mdxquery</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MondrianXmlaServlet</servlet-name>
<url-pattern>/xmla</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>INDEX.html</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>http://www.tonbeller.com/wcf</taglib-uri>
<taglib-location>/WEB-INF/wcf/wcf-tags.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://www.tonbeller.com/jpivot</taglib-uri>
<taglib-location>/WEB-INF/jpivot/jpivot-tags.tld</taglib-location>
</taglib>
</web-app> |
/WEB-INF/datasources.xml
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?xml version="1.0"?>
<DataSources>
<DataSource>
<DataSourceName>Provider=Mondrian;DataSource=PG;</DataSourceName>
<DataSourceDescription>Mondrian FoodMart DATA Warehouse</DataSourceDescription>
<URL>http://localhost:8080/mondrian/xmla</URL>
<DataSourceInfo>Provider=mondrian;Jdbc=jdbc:postgresql://localhost:5432/mydb2;JdbcUser=postgres;JdbcPassword=myPassword;JdbcDrivers=org.postgresql.Driver;Catalog=/WEB-INF/queries/myDB4.xml</DataSourceInfo>
<ProviderName>Mondrian</ProviderName>
<ProviderType>MDP</ProviderType>
<AuthenticationMode>Unauthenticated</AuthenticationMode>
<Catalogs>
<Catalog name="PG">
<Definition>/WEB-INF/queries/myDB4.xml</Definition>
</Catalog>
</Catalogs>
</DataSource>
</DataSources> |
/WEB-INF/queries/mondrianXMLA.jsp
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <%@ page session="true" contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="http://www.tonbeller.com/jpivot" prefix="jp" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<jp:xmlaQuery id="query01"
uri="http://localhost:8080/jpivot/xmla"
dataSource="Provider=Mondrian"
catalog="PG">
SELECT {[Indicator]} ON COLUMNS,
{[Spatial]} ON ROWS
FROM [Indicators]
WHERE [Temporal].[2006]
</jp:xmlaQuery>
<c:SET var="title01" scope="session">Mondrian OLAP via XML/A - 2</c:set> |
/WEB-INF/queries/xmla.jsp
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<!--
* CHANGE uri attribute TO your deployment of this webapp.
* The dataSource attribute IS necessary FOR Mondrian's XMLA.
-->
<jp:xmlaQuery id="query01"
uri="http://localhost:8080/mondrian/xmla"
dataSource="Provider=Mondrian;DataSource=PG;"
catalog="PG">
select {[Indicator]} ON COLUMNS,
{[Spatial]} ON ROWS
from [Indicators]
where [Temporal].[2006]
</jp:xmlaQuery>
<c:set var="title01" scope="session">Accessing Mondrian By XMLA - 1</c:set> |
/WEB-INF/queries/myDB4.xml
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
<?xml version="1.0"?>
<!DOCTYPE Schema SYSTEM ".\mondrian.dtd">
<Schema name="simple_mydb">
<Dimension type="StandardDimension" name="Spatial">
<Hierarchy hasAll="true" primaryKey="spatial_level5_id" primaryKeyTable="spatial_level5">
<JOIN leftKey="spatial_level4_id" rightAlias="spatial_level4" rightKey="spatial_level4_id">
<TABLE name="spatial_level5" schema="public" />
<JOIN leftKey="spatial_level3_id" rightAlias="spatial_level3" rightKey="spatial_level3_id">
<TABLE name="spatial_level4" schema="public" />
<TABLE name="spatial_level3" schema="public" />
</Join>
</Join>
<Level name="NUTS2" TABLE="spatial_level3" COLUMN="spatial_name" uniqueMembers="true">
</Level>
<Level name="NUTS2_3" TABLE="spatial_level4" COLUMN="spatial_name" uniqueMembers="true">
</Level>
<Level name="NUTS3" TABLE="spatial_level5" COLUMN="spatial_name" uniqueMembers="true">
</Level>
<Parameter name="NUTS2" value="north_america_map.svg"/>
<Parameter name="NUTS2_3" value="Map_USA_with_state.svg"/>
<Parameter name="NUTS3" value="Map_USA_with_state.svg"/>
</Hierarchy>
</Dimension>
<Dimension type="TimeDimension" name="Temporal">
<Hierarchy hasAll="false" primaryKey="temporal_id">
<TABLE name="temporal" schema="public" alias="temporal" />
<Level name="Year" COLUMN="temporal_year" type="Numeric" uniqueMembers="true" levelType="TimeYears" hideMemberIf="Never" />
<Level name="Month" COLUMN="temporal_month" type="Numeric" uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never" />
<Level name="Day" COLUMN="temporal_day" type="Numeric" uniqueMembers="false" levelType="TimeDays" hideMemberIf="Never" />
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" name="Indicator">
<Hierarchy hasAll="true" primaryKey="indicator_id">
<TABLE name="indicator" schema="public" alias="indicator" />
<Level name="Indicator Name" COLUMN="indicator_fullname" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never" />
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" name="Uom">
<Hierarchy hasAll="true" primaryKey="uom_id">
<TABLE name="uom" schema="public" />
<Level name="UOM Name" TABLE="uom" COLUMN="uom_name" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never" />
</Hierarchy>
</Dimension>
<Cube name="Indicators" defaultMeasure="Measure" cache="true" enabled="true">
<TABLE name="fact" schema="public" />
<DimensionUsage name="Spatial" source="Spatial" foreignKey="spatial_level5_id"/>
<DimensionUsage name="Temporal" source="Temporal" foreignKey="temporal_id"/>
<DimensionUsage name="Uom" source="Uom" foreignKey="uom_id"/>
<DimensionUsage name="Indicator" source="Indicator" foreignKey="indicator_id"/>
<Measure name="Measure" COLUMN="fact_value" datatype="Numeric" formatString="#,#" aggregator="sum"/>
</Cube>
</Schema> |
Phase de test :
Si je tente l'accès à l'URL
http://localhost:8080/mondrian/testpage.jsp?query=xmla
J'obtiens cette erreur :
Code :
1 2 3 4 5 6 7
| JPivot had an error ...
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: com.tonbeller.jpivot.olap.model.OlapException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (404Introuvable
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: com.tonbeller.jpivot.olap.model.OlapException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (404Introuvable at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) 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.RequestFilter.doFilter(RequestFilter.java:264) 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:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:662) Caused BY: javax.servlet.ServletException: javax.servlet.jsp.JspException: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: com.tonbeller.jpivot.olap.model.OlapException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (404Introuvable at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:861) at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794) at org.apache.jsp.testpage_jsp._jspService(testpage_jsp.java:246) 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) ... 19 more |
Si j'utilise le lien "XML for Analysis tester", en sélectionnant "Discover DataSource", j'obtiens :
Citation:
Etat HTTP 503 - La servlet MondrianXmlaServlet est actuellement indisponible
type Rapport d'état
message La servlet MondrianXmlaServlet est actuellement indisponible
description Le service demandé (La servlet MondrianXmlaServlet est actuellement indisponible) n'est pas disponible actuellement. Apache Tomcat/6.0.33
|
Avez-vous des idées pour faire fonctionner ce satané XMLA ?
Merci d'avance
Michael