我在action里想要获取一个properties的配置文件,但一直提示找不到系统文件的路径
代码:private static GetResultService grs = null;
// private static GetProperitysAndDatesService gpd=null;
static {
try {
Properties pro = new Properties();
InputStream ipt = new FileInputStream("src/factoryConfig.properties");
pro.load(ipt);
System.out.println(pro.getProperty("AddressDao"));
grs = (GetResultService) ObjectFactory
.getObjectFactory(pro.getProperty("GetResultService"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
运行异常:
om.Service.ServiceImpl.CompanyServiceImpl
java.io.FileNotFoundException: src\factoryConfig.properties (系统找不到指定的路径。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at com.Service.ServiceImpl.CompanyServiceImpl.<clinit>(CompanyServiceImpl.java:23)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.Service.ObjectFactory.getObjectFactory(ObjectFactory.java:9)
at com.Action.RegCompany.<clinit>(RegCompany.java:22)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(Unknown Source)
at sun.reflect.ReflectionFactory.newFieldAccessor(Unknown Source)
at java.lang.reflect.Field.acquireFieldAccessor(Unknown Source)
at java.lang.reflect.Field.getFieldAccessor(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1617)
at org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1497)
at org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:707)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4550)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3093)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:404)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1309)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Unknown Source)但我把那代码放到另一个类里的main()方法里,就可以获取到配置文件
代码:try {
Properties pro = new Properties();
InputStream ipt = new FileInputStream("src/factoryConfig.properties");
pro.load(ipt);
String className = pro.getProperty("GetResultService");
Object object = null;
object = ObjectFactory
.getObjectFactory(className);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这是什么问题呢,想不明白呀
代码:private static GetResultService grs = null;
// private static GetProperitysAndDatesService gpd=null;
static {
try {
Properties pro = new Properties();
InputStream ipt = new FileInputStream("src/factoryConfig.properties");
pro.load(ipt);
System.out.println(pro.getProperty("AddressDao"));
grs = (GetResultService) ObjectFactory
.getObjectFactory(pro.getProperty("GetResultService"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
运行异常:
om.Service.ServiceImpl.CompanyServiceImpl
java.io.FileNotFoundException: src\factoryConfig.properties (系统找不到指定的路径。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at com.Service.ServiceImpl.CompanyServiceImpl.<clinit>(CompanyServiceImpl.java:23)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.Service.ObjectFactory.getObjectFactory(ObjectFactory.java:9)
at com.Action.RegCompany.<clinit>(RegCompany.java:22)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(Unknown Source)
at sun.reflect.ReflectionFactory.newFieldAccessor(Unknown Source)
at java.lang.reflect.Field.acquireFieldAccessor(Unknown Source)
at java.lang.reflect.Field.getFieldAccessor(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1617)
at org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1497)
at org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:707)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4550)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3093)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:404)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1309)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Unknown Source)但我把那代码放到另一个类里的main()方法里,就可以获取到配置文件
代码:try {
Properties pro = new Properties();
InputStream ipt = new FileInputStream("src/factoryConfig.properties");
pro.load(ipt);
String className = pro.getProperty("GetResultService");
Object object = null;
object = ObjectFactory
.getObjectFactory(className);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这是什么问题呢,想不明白呀
解决方案 »
- 问个小问题 C#中 参数可设置成 out、ref java里面有吗
- SmartChineseAnalyzer
- java的web页面 如何弹出保存对话框
- 请问如何取得JComboBox选中的值,谢谢
- [求助]"Class.forname()"是不是就是用类加载器加载相应的类对象?
- 魔兽争霸 web版开放拉!!!!!!!
- 怎么也没想到这里会出问题,好心人帮帮我吧
- 数据库设计中的一个问题,讨论一下
- 一个简单问题,关于字符串
- 怎么改变jinterframe的title背景颜色?
- BufferedReader的mask和reset
- 求助:有个项目必须用JDK1.4,而MyEclipse6.0只支持1.5
String filePath = System.getProperty("user.dir")+File.separator+"src/factoryConfig.properties";
InputStream ipt = new FileInputStream(filePath);
他们不对,你也不对呀,你这样是获取编译工具的路径呀,我的IDE在G盘,但工程目录在D盘呀
控制台获取出来的路径就是工程的路径,但在tomcate上运行,路径就变成编译工具的路径了在控制台获取的和在tomcate获取的路径不一样呀,怎么在tomcate里获取到工程的src的路径呀???
InputStream ipt = this.getClass().getClassLoader().getResourceAsStream("/factoryConfig.properties");
up,刚刚做过这个
"/cache_option.properties");