2011-11-20 53 views
4

我有一个web应用程序,我尝试在其中使用Mondrian。而且我发现了以下情况例外,当我尝试打开一个连接:Mondrian在Web应用程序中使用时无法在VFS中找到架构

Caused by: mondrian.olap.MondrianException: Mondrian Error:Internal error: Virtual file is not readable: /WEB-INF/olap/mycube.xml 

我一直在使用一个普通的J2SE程序的命令行测试此多维数据集,并能正常工作。但是,当我尝试在我的Web应用程序中执行同一个多维数据集时,出现上述错误。我的连接字符串如下:

jdbc:mondrian:Jdbc=jdbc:mysql://${server.db.host}/HRWarehouse?user=${server.db.username}&password=${server.db.password};Catalog=/WEB-INF/olap/mycube.xml; 

这是非常相似,我在蒙德里安的Web应用程序已经找到。然而,不知何故,该应用程序已经在VFS中安装了ServletContext,但是在那里我可以通过google找到有关mondrian在web应用程序中的任何特殊配置的文档。

我已经解决了该问题,方法是将模式的路径设置为绝对引用,而不是相对于webapp上下文。虽然这让我继续测试,但这不是解决问题的适当方法。我正在寻找如何解决允许webapp上下文相关URL的异常的答案。

+0

我建议安装Pentaho BI服务器,并从那里开始。 –

回答

1

我认为你需要指定目录的工作文件,

`jdbc:mondrian:Jdbc=jdbc:mysql://${server.db.host}/HRWarehouse?user=${server.db.username}&password=${server.db.password};Catalog=file:/path/to/schema.xml;` 

我不能记得,如果它是绝对路径与否,再次尝试两者。

我也会仔细检查连接字符串,以确保它的写入正确。此外,如果您还没有它,最终可能会有帮助的link

更新 尝试在你的路径beggining添加jndi:/jndi:/localhost/path/to/file.xml

+0

这正是我已经在做的。我在目录中指定了绝对URL。我想将其转换为Web应用上下文相关的URL,因此它不会被硬编码。在Mondrian示例web应用程序中,他们定义了与servlet上下文路径相关的目录文件,但我无法确定他们做了什么来完成这个工作。我的为什么不工作。你知道蒙德里安如何实施VFS来帮助我吗? – chubbsondubs

+0

我从来没有惹过Mondrian Adhoc解决方案,我只用过Pentaho BI,但是我可以试试明天帮助你,而你可以告诉我,如果你使用的是tomcat? –

+0

是的,它加载在tomcat中。 – chubbsondubs

相关问题