Мондриан Не может найти схему в VFS при использовании в веб-приложении - PullRequest
4 голосов
/ 21 ноября 2011

У меня есть веб-приложение, в котором я пытаюсь использовать Mondrian. И я получаю следующее исключение при попытке открыть соединение:

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

Я протестировал этот куб, используя простую программу J2SE из командной строки, и он отлично работает. Однако, когда я попытался выполнить тот же куб в своем веб-приложении, я получил ошибку выше. Моя строка подключения выглядит следующим образом:

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

Это очень похоже на то, что я нашел в веб-приложении Mondrian. Тем не менее, каким-то образом это приложение установило ServletContext в VFS, но там точно нет документации, которую я могу найти через google о любой специальной конфигурации для mondrian в веб-приложении.

Я обошел проблему, установив путь к схеме как абсолютную ссылку, а не как контекст веб-приложения. Хотя это позволило мне продолжить тестирование, это не является подходящим решением проблемы. Я ищу ответ о том, как исправить это исключение, которое разрешает относительный URL контекста веб-приложения.

1 Ответ

1 голос
/ 07 ноября 2012

Я думаю, вам нужно указать рабочий файл в каталоге,

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

Не могу вспомнить, был ли это абсолютный путь или нет, попробуйте оба снова.

Я бы также дважды проверил строку подключения, чтобы убедиться, что она написана правильно. Кроме того, вот ссылка , которая может оказаться полезной, если у вас ее еще нет.

Обновление Попробуйте добавить jndi:/ в начале вашего пути: jndi:/localhost/path/to/file.xml

...