java加载spring时找不到配置文件.
背景:因需要处理支付宝的异步通知,所以把处理业务封装成了接口,在jsp上实例化再调用处理相关数据.
问题:实例化的过程中加载不到applicationContext.xml
异常信息:
运行环境:centos,resin(/usr/resin),java1.6
java代码:
public static String ROOT = OrderAction.class.getClassLoader().getResource("").toString().replaceAll("file:/", "").replaceAll("/WEB-INF/classes/", ""); public OrderAction(){ String xmlPath = (System.getProperty("os.name").toLowerCase().indexOf("linux")!=-1?"/":"")+ROOT+"/WEB-INF/conf/applicationContext.xml"; File xmlFile = new File(xmlPath) ; if(xmlFile.exists()){ logger.error("get the file "+xmlPath) ; ApplicationContext context = new FileSystemXmlApplicationContext(xmlPath); taskService = (ITaskService) context.getBean("taskService") ; commonservice = (CommonService) context.getBean("commonServices") ; logger.error("-----"+taskService==null) ; logger.error("-----"+commonservice==null) ; }else{ logger.error("xml not exit !"+xmlPath) ; } }
OrderAction oa = new OrderAction() ; oa.handle(request.getRemoteAddr(),"201408141016588003", "success") ;
applicationContext.xml实际路径是 /usr/shared/webapps/ROOT/WEB-INF/conf/applicationContext.xml
不明白为什么会把resin的路径给加上了.应该和resin无关吧~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
File classFloder = new File(OrderAction.class.getClassLoader().getResource("").getPath());
File confFloder = new File(classFloder.getParentFile(),"conf");
File applicationContext = new File(confFloder,"applicationContext.xml");