Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Autres
Autres Autres logiciels d'informatique décisionnelle, de statistiques, générateurs d’états ou outils infocentre : EpiInfo, FreeReport, FastReport, Hyperion, JPivot, QuickReport, Mondrian, ReportBuilder, Stata, Spad, Spss, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2011, 12h44   #1
Membre éclairé
 
Homme Michael Tranchant
Chargé de projets JEE - BI
Inscription : septembre 2002
Messages : 37
Détails du profil
Informations personnelles :
Nom : Homme Michael Tranchant
Âge : 30
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Chargé de projets JEE - BI
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2002
Messages : 37
Points : 323
Points : 323
Par défaut Configurer Mondrian en serveur XMLA

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
mtranchant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 17h43   #2
Membre éclairé
 
Homme Michael Tranchant
Chargé de projets JEE - BI
Inscription : septembre 2002
Messages : 37
Détails du profil
Informations personnelles :
Nom : Homme Michael Tranchant
Âge : 30
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Chargé de projets JEE - BI
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2002
Messages : 37
Points : 323
Points : 323
Bonjour,

Je me réponds à moi-même, vu que çà n'a pas inspiré grand monde. Autant que çà serve, si d'autres sont dans le même cas que moi.

Le problème provient de... Mondrian 3.3 !

J'ai réinstallé ma conf complète avec un Mondrian 3.2.1.13885 et çà fonctionne ! J'ai dû corriger un peu de la configuration de mon post intial, mais comme Mondrian m'indiquait bien les erreurs, çà n'a pas été difficile.

Pour en avoir le cœur net, après avoir validé ma conf en 3.2, j'ai remplacé les fichiers de la 3.2 par ceux de la 3.3, en conservant mes 2 fichiers de conf (web.xml et datasources.xml) : boum, çà crashe.

Une seule solution, donc, pour le moment : prendre la version 3.2.

Pour ceux qui sont intéressé, j'ai fait un petit tuto pour l'installation de Mondrian en XMLA : http://tranchant.name/2011/12/mondrian-en-serveur-xmla/

Cordialement
Michael
mtranchant est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/02/2012, 21h37   #3
Invité de passage
 
Inscription : février 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 2
Points : 1
Points : 1
Tu m'as permis d'avancer merci.

Je suis toujours bloqué mais je pense que mon probleme vient des multiples changements que j'ai fais à droite et à gauche.

La réponse que j'obtiens est :

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header>
</SOAP-ENV:Header><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server.00HSBE02</faultcode><faultstring>XMLA Discover unparse results error</faultstring><faultactor>Mondrian</faultactor><detail><XA:error><code>00HSBE02</code><desc>The Mondrian XML: Document parse failed: [Fatal Error] :7:98: The reference to entity "password" must end with the ';' delimiter.
</desc></XA:error></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
coban est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2012, 11h39   #4
Membre éclairé
 
Homme Michael Tranchant
Chargé de projets JEE - BI
Inscription : septembre 2002
Messages : 37
Détails du profil
Informations personnelles :
Nom : Homme Michael Tranchant
Âge : 30
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Chargé de projets JEE - BI
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2002
Messages : 37
Points : 323
Points : 323
Citation:
Envoyé par coban Voir le message
Tu m'as permis d'avancer merci.

Je suis toujours bloqué mais je pense que mon probleme vient des multiples changements que j'ai fais à droite et à gauche.

La réponse que j'obtiens est :

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header>
</SOAP-ENV:Header><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server.00HSBE02</faultcode><faultstring>XMLA Discover unparse results error</faultstring><faultactor>Mondrian</faultactor><detail><XA:error><code>00HSBE02</code><desc>The Mondrian XML: Document parse failed: [Fatal Error] :7:98: The reference to entity "password" must end with the ';' delimiter.
</desc></XA:error></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
Heureux que çà ait pu servir à quelqu'un. Finalement, j'ai réussi à trouver une réponse pour faire fonctionner Mondrian 3.3 en XMLA.
Pour ton erreur, on dirait que le Password n'est pas délimité par ";" comme dans :
Code :
Provider=mondrian;Jdbc=jdbc:postgresql://localhost:5432/mydb2?user=postgres&password=myPassword;Catalog=/WEB-INF/queries/myDB4.xml;JdbcDrivers=org.postgresql.Driver;
Peux-tu partager le fichier, si tu as toujours le souci ?

Cordialement
Michael
mtranchant est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h14.


 
 
 
 
Partenaires

Hébergement Web