2013-12-13 87 views
0

我構建了一個Spring應用程序(它是在Geronimo服務器上運行的單例應用程序,而不是Web服務或MVC應用程序)。在它的加載中,我試圖訪問一個內部應用程序上下文(它將管理一組原型bean - 基本上試圖使用分層應用程序上下文來管理所有原型bean,以便乾淨關閉這些bean)。創建自定義Web應用程序上下文[SPRING]

我看了看各種方法如下:

基本上創建一個輔助的servlet(不像我的最佳選擇),並訪問它們

或使用GenericWebApplicationContext(也嘗試了其他所有的WebApplicationContext相關API)如下:

GenericWebApplicationContext context = new GenericWebApplicationContext(servletContext); 
context.setParent(rootApplicationContext); 
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(context); 
xmlReader.loadBeanDefinitions(new ClassPathResource("ApplicationContext/beans.xml")); 
context.refresh(); 

請評論方法。有沒有建議的方法?

施氮,我還得到了以下錯誤:

2013-12-13 00:44:04,877 ERROR [ContextLoader] Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ZKWatcherImpl' defined in URL [bundleresource://382.fwk1189431013/com/ebay/traffic/email/aggregate/watcher/ZKWatcherImpl.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.ebay.traffic.email.aggregate.watcher.ZKWatcherImpl]: Constructor threw exception; 
nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context] Offending resource: class path resource [CustomContext.xml] 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:997) 

感謝

+0

人們也想看到你的CustomConetxt.xml –

回答

0

在你的異常面前你不導入自定義命名空間實際上正確。或者dtd不存在,或者您沒有在CustomContext.xml中引用正確的公共位置。

關於你的主要問題,你爲什麼需要第二個servlrt或WebApplicationContext本身。你需要管理原型豆有許多問題上,像這樣

Spring: How to cleanly terminate prototype-scoped beans?

搜索,以便先用你的正常需求。你會得到很多。

+0

嗨manocha_ak, 感謝您的反饋意見。將研究它。我搜索了自定義Web上下文的主題,但沒有想到這個用例,謝謝指出。真的很感激它。 謝謝, Dheeban – dheeban