Maven 2 使用mvn scala:console时如何处理JNDI配置

Maven 2 使用mvn scala:console时如何处理JNDI配置,maven-2,scala,scala-2.8,lift,Maven 2,Scala,Scala 2.8,Lift,我正在对映射器问题进行故障排除,并且在尝试使用Scala/Lift控制台中的映射器类时遇到了一个问题。我们的元映射器通过一个ConnectionIdentifier来配置其数据源,该标识符指向在JNDI中配置的JDBC数据源。这在通过Jetty引导时非常有效 加载控制台并运行(new bootstrap.liftweb.Boot).Boot初始化时,schemizer.schemify失败JNDI配置不可用 scala> (new bootstrap.liftweb.Boot).boot

我正在对映射器问题进行故障排除,并且在尝试使用Scala/Lift控制台中的映射器类时遇到了一个问题。我们的元映射器通过一个ConnectionIdentifier来配置其数据源,该标识符指向在JNDI中配置的JDBC数据源。这在通过Jetty引导时非常有效

加载控制台并运行
(new bootstrap.liftweb.Boot).Boot
初始化时,
schemizer.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...

基本上,我希望在控制台中具有完整的元映射器功能。我的问题是:从控制台引导Lift应用程序的最佳方式是什么,这样基于JNDI的依赖关系也可以在支持JNDI的web容器之外实现?

在应用程序服务器下,服务器可能会为您提供JNDI上下文。在独立应用程序中,您必须自己提供JNDI上下文。为此,您可以使用一个

这里有一个使用Apache的DBCP的好例子:。当然,您必须将数据源对象修复到您正在使用的实现中


对于简单的JNDI使用来说,这就足够了(虽然不是很优雅)

在应用服务器下,服务器可能会为您提供JNDI上下文。在独立应用程序中,您必须自己提供JNDI上下文。为此,您可以使用一个

这里有一个使用Apache的DBCP的好例子:。当然,您必须将数据源对象修复到您正在使用的实现中


对于简单的JNDI使用来说,这就足够了(虽然不是很优雅)

谢谢你的回复。不过,我正在寻找一种方法,可以在不修改应用程序源代码的情况下在不同的JNDI提供程序中进行交换。谢谢您的回复。不过,我确实在寻找一种方法,可以在不修改应用程序源代码的情况下在不同的JNDI提供程序中进行交换。