尝试使用Weblogic服务器上的ClassPathXmlApplicationContext创建应用程序上下文对象时抛出FileNotFound异常

时间:2013-01-30 04:06:39

标签: spring weblogic

方案 我的项目中要求对Web服务进行多线程调用。这是使用ThreadPoolTask​​Executor(Spring)实现的。 由于线程类需要在运行时提供值,因此实现了以下代码 -

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application-context.xml");
for (DocumentData documentData : documentDataList){
    MinerThread minerThread = applicationContext.getBean("minerThread",MinerThread.class);
    minerThread.setHeader(header);
    minerThread.setDocumentData(documentData);
    minerThread.setBatchSize(batchSize);
    minerThreadExecutor.execute(minerThread);
}

问题 在本地我有tomcat服务器,这个实现按预期工作。但是在部署战争时,在Weblogic上(在客户端计算机上,我无法访问Weblogic)会抛出FileNotFound异常。

由于应用程序上下文对象是通过ClassPathXmlApplicationContext API创建的,因此认为错误是因为该位置不在Weblogic类路径下。 Weblogic服务器类路径中没有设置任何内容。但是,即使在类路径中包含WEB-INF / classes之后,也会抛出相同的异常。

异常 2013/01/29 09:19:12,853 [ERROR] RequestQueueListener - org.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:无法从相对位置导入bean定义[../shared-common-context.xml] 违规资源:类路径资源[application-context.xml];嵌套异常是org.springframework.beans.factory.BeanDefinitionStoreException:IOException从类路径资源[../shared-common-context.xml]解析XML文档;嵌套异常是java.io.FileNotFoundException:无法打开类路径资源[../shared-common-context.xml],因为它不存在

BeanDefinitionParsingException是由于Weblogic类路径中添加的相对路径引起的。

在Weblogic上,文件位于 - ./wls10.3.4/ColorisPPT1/user_projects/domains/Coloris_PPT1_Domain/servers/Coloris_PPT1_AdminServer/tmp/.appmergegen_1336142780924_documentservice.war/WEB-INF/classes

如果构建了war(使用了Maven),则application-context.xml将放在WEB-INF / classes文件夹下。

有人可以建议如何继续这样做。

0 个答案:

没有答案