【发布时间】:2012-09-05 10:39:59
【问题描述】:
我有一个可以在 Tomcat 下独立运行的应用程序。目前,我使用 JNDI 来配置我的数据库端点。然而,JNDI 仅在应用程序在应用程序服务器下运行(在我的例子中为 Tomcat)时才有效,因此当应用程序独立运行时,JNDI 调用失败,并且应用程序抛出异常。
有没有一种方法可以“模拟”JNDI 数据源,以便应用程序可以在没有应用服务器的情况下运行?如果是这样,我将如何去做?
干杯。
【问题讨论】:
我有一个可以在 Tomcat 下独立运行的应用程序。目前,我使用 JNDI 来配置我的数据库端点。然而,JNDI 仅在应用程序在应用程序服务器下运行(在我的例子中为 Tomcat)时才有效,因此当应用程序独立运行时,JNDI 调用失败,并且应用程序抛出异常。
有没有一种方法可以“模拟”JNDI 数据源,以便应用程序可以在没有应用服务器的情况下运行?如果是这样,我将如何去做?
干杯。
【问题讨论】:
单机模式是否仅用于测试?或者它也是一种有效的操作模式?
如果只是为了测试,我会编写你自己的上下文工厂,它实现了一个最小的 InitialContextFactory 并在你的配置文件中指定那个类。你的类使用适当的资源响应请求。
如果它也是一种有效的操作模式,您可以在上下文工厂中投入更多的工作,并将其用作应用服务器的代理。它确定应用服务器是否存在,如果存在,则将请求重定向到应用服务器。
如果您在 Google 上搜索“Mocking JNDI”,这里有几个很好的例子来说明如何做到这一点。
【讨论】: