Как обратиться к конфигурации JNDI при использовании mvn scala: console - PullRequest
1 голос
/ 04 ноября 2010

Я устраняю проблему Mapper и сталкиваюсь с проблемой, пытающейся использовать класс Mapper внутри консоли Scala / Lift.Наши источники данных MetaMappers настроены через ConnectionIdentifier, который указывает на источник данных JDBC, настроенный в JNDI.Это прекрасно работает при начальной загрузке через Jetty.

При загрузке консоли и запуске (new bootstrap.liftweb.Boot).boot для инициализации, Schemifier.schemify не удается настроить JNDI.

scala> (new bootstrap.liftweb.Boot).boot
java.lang.NullPointerException: Looking for Connection Identifier ConnectionIdentifier(jdbc/svcHub) but failed to find either a JNDI data source with the name jdbc/svcHub or a lift connection manager with the correct name
    at net.liftweb.mapper.DB$$anonfun$7$$anonfun$apply$12.apply(DB.scala:141)
    at net.liftweb.mapper.DB$$anonfun$7$$anonfun$apply$12.apply(DB.scala:141)
    at net.liftweb.common.EmptyBox.openOr(Box.scala:465)
    at net.liftweb.mapper.DB$$anonfun$7.apply(DB.scala:140)
    at net.liftweb.mapper.DB$$anonfun$7.apply(DB.scala:140)
    at net.liftweb.common.EmptyBox.openOr(Box.scala:465)
    at net.liftweb.mapper.DB$.newConnection(DB.scala:134)
    at net.liftweb.mapper.DB$.getConnection(DB.scala:230)
    at net.liftweb.mapper.DB$.use(DB.scala:581)
    at net.liftweb.mapper.Schemifier$.schemify(Sche...

По сути, я хотел бы иметь полную функциональность MetaMapper из консоли.Мой вопрос: каков наилучший способ загрузить приложение Lift с консоли так, чтобы зависимости на основе JNDI могли также выполняться вне веб-контейнера с поддержкой JNDI?

1 Ответ

1 голос
/ 04 ноября 2010

Под сервером приложений вполне вероятно, что сервер предоставит вам контекст JNDI.В автономном приложении вы должны предоставить JNDI-контекст самостоятельно.Для этого вы можете использовать javax.naming.InitialContext .

Вот хороший пример использования DBCP Apache: http://commons.apache.org/dbcp/guide/jndi-howto.html. Конечно, вам придется исправить источник данныхобъекты используемой реализации.

Этого будет достаточно (хотя и не очень элегантно) для простого использования JNDI.

...