2016-12-08 16 views
0

私はWebSphere Liberty 8.5.5サーバーを使用しており、このサーバーにバッチ・テスト・ケースをいくつか書いています。私はテストのためにJNDIルックアップオブジェクトを模擬しようとしていますが、私はエラーの下に取得していますテストケースにDataSourceオブジェクトを設定しながら、誰もがINITIAL_CONTEXT_FACTORYユニット・テスト - WebSphere LIbertyのJNDIルックアップ

ERRORを設定する方法を知っています:javax.naming.NoInitialContextException:クラスを指定する必要があります環境またはシステム内の名前が erty、アプレットパラメータ、アプリケーションリソースファイルのいずれかである場合:java.naming.factory.initial at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662) at javax .naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344) at javax.naming.InitialContext.lookup(Ini tialContext.java:411)

答えて

1

InitialContextコンストラクタの環境で、初期コンテキストファクトリのクラス名を設定する必要があります。例えば

public class MockICF implements InitialContextFactory { 

    private static Context ctx = new Mockery().mock(Context.class); 

    @Override 
    public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException { 
     return ctx; 
    } 
} 
com.example.MockICFは次のように書かれるかもしれない

Hashtable<Object, Object> env = new Hashtable<>(); 
env.put(InitialContext.INITIAL_CONTEXT_FACTORY, "com.example.MockICF"); 
new InitialContext(env); 

関連する問題