我有一个运行在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