背景:因需要处理支付宝的异步通知,所以把处理业务封装成了接口,在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无关吧~
File classFloder = new File(OrderAction.class.getClassLoader().getResource("").getPath());
File confFloder = new File(classFloder.getParentFile(),"conf");
File applicationContext = new File(confFloder,"applicationContext.xml");
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。