在春天通過的ApplicationContext類我可以利用的IoC功能,並得到一個參考的Bean如下的Spring IoC和Java EE
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實施...感謝您的幫助。
嗨的地方,感謝您的回答。我試過這個,但它仍然拋出命名異常。 「需要在環境或系統屬性中指定類名稱,或者作爲小程序參數」。 – Barry 2013-03-06 11:43:14
@Barry,在這種情況下,我怕你需要實現'javax.naming.spi.InitialContextFactory'並把它放到系統屬性中。我在更新後的答案中提供了非常相似的內容。 – n1ckolas 2013-03-06 13:05:31