Bonjour,

J'utilise Geomondrian/JPivot et voici mon cube :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?xml version="1.0"?>
<Schema name="odeurShema">
   <Cube name="odeurCube">
		<Table name="factTable"/>
 
			<Dimension name="time" foreignKey="idTemps">
						<Hierarchy hasAll="true" primaryKey="id">
						   <Table name="time" /> 
									<Level name="annee" column="annee" uniqueMembers="false"/>
									<Level name="mois" column="mois" uniqueMembers="false"/>
									<Level name="jour" column="jour" uniqueMembers="false"/>
									<Level name="heure" column="heure" uniqueMembers="false"/>
									<Level name="minute" column="minute" uniqueMembers="false"/>
						</Hierarchy>
			</Dimension>
 
			<Dimension name="sources" foreignKey="idSource">
						<Hierarchy hasAll="true" primaryKey="id">
						   <Table name="sources" /> 
									<Level name="code" column="code" uniqueMembers="true" /> 
						</Hierarchy>
			</Dimension>
 
			<Dimension name="tracer" foreignKey="idtracer">
						<Hierarchy hasAll="true" primaryKey="id">
						   <Table name="tracer" /> 
									<Level name="code" column="code" uniqueMembers="true" /> 
						</Hierarchy>
			</Dimension>
 
			<Dimension name="points" foreignKey="idPoint">
						<Hierarchy hasAll="true" primaryKey="id">
						   <Table name="points" /> 
									<Level name="id" column="id" uniqueMembers="true" type="Numeric" >
										<Property name="geom" column="geom" type="Geometry" />
									</Level>
						</Hierarchy>
			</Dimension>
 
 
 
		<Measure name="Concentration" column="ValeurConcentration" aggregator="avg" formatString="0.0e+00"/>
 
		<UserDefinedFunction name="ST_Contains" className="mondrian.udf.geo.STContainsUdf" />
		<UserDefinedFunction name="ST_Crosses" className="mondrian.udf.geo.STCrossesUdf" />
		<UserDefinedFunction name="ST_Disjoint" className="mondrian.udf.geo.STDisjointUdf" />
		<UserDefinedFunction name="ST_Equals" className="mondrian.udf.geo.STEqualsUdf" />
		<UserDefinedFunction name="ST_Intersects" className="mondrian.udf.geo.STIntersectsUdf" />
		<UserDefinedFunction name="ST_Overlaps" className="mondrian.udf.geo.STOverlapsUdf" />
		<UserDefinedFunction name="ST_Touches" className="mondrian.udf.geo.STTouchesUdf" />
		<UserDefinedFunction name="ST_Within" className="mondrian.udf.geo.STWithinUdf" />
		<UserDefinedFunction name="ST_Relate" className="mondrian.udf.geo.STRelateUdf" />
		<UserDefinedFunction name="ST_Distance" className="mondrian.udf.geo.STDistanceUdf" /> 
		<UserDefinedFunction name="ST_GeomFromText" className="mondrian.udf.geo.STGeomFromTextUdf" />
		<UserDefinedFunction name="ST_UnionAgg" className="mondrian.udf.geo.STUnionAggUdf" />
 
   </Cube>
 
 
 
</Schema>
et voici ma requete (Fichier jsp) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ 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:mondrianQuery id="query01" jdbcDriver="org.postgis.DriverWrapper" jdbcUrl="jdbc:postgresql_postGIS://localhost:5433/cubeodeurtest?user=postgres&password=cfp4108" catalogUri="/WEB-INF/queries/geosbi.xml">
 
SELECT {[Measures].[Concentration]} on columns, 
Filter( {[points].members}, 
ST_Distance(
		ST_GeomFromText("POINT(-72.1235 42.3521)"),
		[points].CurrentMember.Properties("geom")
	) < 2.0) on rows
 FROM [odeurCube]
 
</jp:mondrianQuery>
<c:set var="title01" scope="session">Test Query uses Mondrian OLAP</c:set>
Je reçois cette erreur, qui me rend fou depuis quelques jours :

javax.servlet.ServletException: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "test" with value "${query01.result.overflowOccured}": An error occurred while getting property "result" from an instance of class com.tonbeller.jpivot.tags.OlapModelProxy (com.tonbeller.jpivot.olap.model.OlapException: mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while executing query [select {[Measures].[Concentration]} ON COLUMNS, Filter({[points].Members}, (ST_Distance(ST_GeomFromText("POINT(-72.1235 42.3521)"), [points].CurrentMember.Properties("geom")) < 2.0)) ON ROWS from [odeurCube] ])
J'espère que vous pourrez m'aider. Merci d'avance.