Spring では、ApplicationContext クラスを介して IoC 機能を利用し、次のように Bean への参照を取得できます。
public class Driver {
public static void main(String args[])
{
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/spring-config.xml");
MyClass myClass = (MyClass)applicationContext.getBean("myClass");
}
Java EE で同じことができるようにしたいのですが、アプリケーション サーバーの外ではできないようです。
私は次のことを試しています
public class Driver {
public static void main(String args[])
{
InitialContext ic;
try {
ic = new InitialContext();
// JNDI lookup
MyClass myClass = (MyClass)ic.lookup("java:module/MyClass");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
これまでのところ、このアプローチでは javax.naming.NoInitialContextException が発生します。私の質問は、Java EE を使用してスタンドアロン アプリケーションに IoC 機能をロードするにはどうすればよいかということです。
編集助けてくれてありがとう...私はOpenWebBeans CDIの実装に行きました...助けてくれてありがとう。