不在App Server中时伪造JNDI

时间:2012-09-05 10:40:00

标签: java tomcat jndi

我有一个可以在Tomcat和Standalone下运行的应用程序。目前,我使用JNDI配置我的数据库端点。 JNDI仅在应用程序在应用程序服务器下运行时才起作用(在我的情况下是Tomcat),因此当应用程序独立运行时,JNDI调用失败,并且应用程序抛出异常。

有没有办法可以'模拟'JNDI数据源,以便应用程序可以在没有应用服务器的情况下运行?如果是这样,我将如何去做呢?

干杯。

1 个答案:

答案 0 :(得分:0)

独立模式仅用于测试吗?或者它也是一种有效的运作模式?

如果仅用于测试,我会编写您自己的上下文工厂,该工厂实现最小的InitialContextFactory,并在配置文件中指定该类。您的类使用适当的资源响应请求。

如果它也是一种有效的操作模式,您可以将更多工作放入上下文工厂并将其用作应用服务器的代理。它确定应用服务器是否存在以及是否将请求重定向到应用服务器。

如果你谷歌'Mocking JNDI',有几个很好的例子说明如何做到这一点。