所以我的问题与我以前的帖子有关:SQLException : No value specified for parameter 1
我不知道属性文件是什么。我可以从文本编辑器创建属性文件,并在Tomcat / conf文件夹中的catalina.properties文件中设置路径吗?或者我有以下
javabase.jdbc.url = jdbc:mysql://200.230.71.12:3306/social
javabase.jdbc.driver = com.mysql.jdbc.Driver
javabase.jdbc.username = cepein
javabase.jdbc.password = 1234cinco
插入catalina.properties文件中的shared.loader =吗?
所以无论如何我做了以下事情:
# starting with file:
shared.loader= /home/shaunkoo/NetBeansProjects/dao.properties
并通过
加载文件private static final String PROPERTIES_FILE = "/NetBeansProjects/dao.properties";
private static final Properties PROPERTIES = new Properties();
static {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream propertiesFile = classLoader.getResourceAsStream(PROPERTIES_FILE);
但是,我收到的错误表明类路径中缺少/NetBeansProjects/dao.properties。有什么线索我做错了吗?
答案 0 :(得分:7)
我不知道属性文件是什么。
Java .properties
文件只是每行中key=value
对的配置文件,如Windows(实际上是C ++ / C#).ini
文件。
我可以从文本编辑器创建属性文件,并在Tomcat / conf文件夹中的catalina.properties文件中设置路径吗?
归结为文件必须放在Java类路径中。对于Java Web应用程序,您可以将其放在类路径所涵盖的现有路径之一中,例如/WEB-INF/classes
(在IDE中,将文件放在Java源的根文件夹中应该使其成为结束于/WEB-INF/classes
)。您当然也可以将其放在其他位置并将其根路径添加到类路径中,因为您正尝试使用Tomcat的shared.loader
。
所以无论如何我做了以下事情:
# starting with file: shared.loader= /home/shaunkoo/NetBeansProjects/dao.properties
这是不正确的,它必须指向表示类路径根或单个JAR文件的文件夹。在你的情况下,它应该是:
shared.loader= /home/shaunkoo/NetBeansProjects
这样,上述文件夹的内容就成了类路径的一部分。
并通过
加载文件private static final String PROPERTIES_FILE = "/NetBeansProjects/dao.properties";
这是不正确的,上下文类加载器的路径不能以/
开头,也不应该指向在类路径中的文件夹。您已将/home/shaunkoo/NetBeansProjects
指定为类路径的一部分,因此文件夹内的所有文件都可由类加载器访问,而不是文件夹本身。在你的情况下,它应该是:
private static final String PROPERTIES_FILE = "dao.properties";
答案 1 :(得分:0)
getResourceAsStream针对类路径而不是文件系统路径进行解析。所以你需要把文件放在你的源文件夹中(例如在/src/resources/dao.properties
然后使用类似getResourceAsStream("/resources/dao.properties")