我有一個運行在tomcat中的基於mavenized,多模塊彈簧(3.0.1)的應用程序。我試圖創建一個獨立的工具,我可以通過一個jar分發給用戶(這樣他們只需雙擊它),該工具捆綁在上述應用程序的一些模塊中。創建可插入彈簧應用程序的其他罐子的雙擊'超級'jar
我已經使用maven-shade-plugin來組裝這個罐子。如果我炸開jar,它看起來好像所有的依賴關係都在那裏,並且兩個spring元數據文件已經從所有單獨的spring jar中正確連接起來。應用程序運行,直到我試圖實例化一個ClassPathXmlApplicationContext
。當用戶在應用程序中點擊一個按鈕,則執行下面的方法:
public void createAppContext() {
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext(springFiles);
}
「springFiles」的類聲明如下:
public final String[] springFiles = { "/applicationContext-beans.xml" };
當執行以下錯誤上述方法出現:
Exception in thread "Thread-8" java.lang.ArrayIndexOutOfBoundsException: 3350 at org.springframework.asm.ClassReader.(Unknown Source) at org.springframework.asm.ClassReader.(Unknown Source) at org.springframework.asm.ClassReader.(Unknown Source) at org.springframework.core.type.classreading.SimpleMetadataReader.(SimpleMetadataReader.java:48) at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80) at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:82) at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:76) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.checkConfigurationClassCandidate(ConfigurationClassBeanDefinitionReader.java:302) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:157) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:132) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:584) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:405) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93) at com.mycompany.StandaloneTool$2.run(StandaloneTool.java:124)
任何幫助將不勝感激!
執行加載的任何bean是否嘗試通過註釋加載其他上下文? – 2010-03-30 17:41:02