JNDIを手動設定する
普段はアプリケーションサーバーとかに設定してもらっているJNDIを、手動で設定するとなるとちょっと難しい感じです。
が、spring-mockにorg.springframework.mock.jndi.SimpleNamingContextBuilderがありました。(今回はspring-mock-2.0.5.jar)
これで、楽チン設定できます。
たとえば、JNDI設定、JNDI取得は以下のようにして。
import javax.naming.InitialContext; import org.springframework.mock.jndi.SimpleNamingContextBuilder; public class TestJNDI { public static void main(String[] args) { try { // JNDI設定 SimpleNamingContextBuilder builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder(); builder.bind("java:comp/env/myparameter", "MyValue"); builder.activate(); // JNDI取得 System.out.println(new InitialContext().lookup("java:comp/env/myparameter")); } catch (Exception e) { e.printStackTrace(); } } }
実行するとこんな感じで出力されます。
myparameter = MyValue
今回は、MyValueというStringですが、DataSourceとか突っ込んじゃえばアプリケーションサーバーを起動しないでテストができたりしますね。
JNDI設定の処理は、ほぼ以下の2クラスだけでやっているので、新たにspring-mockのjarを導入したくない場合でも、コピペですぐ作れちゃいます。
- org.springframework.mock.jndi.SimpleNamingContext
- org.springframework.mock.jndi.SimpleNamingContextBuilder