【问题标题】:Not able to fetch the properties from system.properties in Servlet page无法从 Servlet 页面中的 system.properties 获取属性
【发布时间】:2016-07-14 14:49:12
【问题描述】:

我正在尝试从如下所示的 system.properties 文件中获取属性 -

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/stud_mng" 
duser="root"
dpass=""
logfile=d:/log/test_log.txt

我也像这样在我的 web.xml 中映射了这个文件 -

<servlet>
    <description>
        This is the description of my J2EE component
    </description>
    <display-name>
        This is the display name of my J2EE component
    </display-name>

    <servlet-name>InitServlet</servlet-name>
    <servlet-class>com.dts.core.util.InitServlet</servlet-class>

    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/config/system.properties</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>InitServlet</servlet-name>
    <url-pattern>/initservlet</url-pattern>
</servlet-mapping>

现在这个 InitServlet.java 文件问题出现了,我试图从这里获取保存在 config 文件夹下的 system.properties 的属性。这是从props.load(fis); 行抛出异常的代码,我发布了几行异常和文件夹树的结构-

package com.dts.core.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;

import com.dts.core.dao.AbstractDataAccessObject;
import com.dts.core.db.DBFactory;

public class InitServlet extends HttpServlet
{
    AbstractDataAccessObject dobject;

    public void init(ServletConfig sc)
    {
        ServletContext ctx = sc.getServletContext();
        InputStream fis = ctx.getResourceAsStream(sc.getInitParameter("config"));
        Properties props = new Properties();

        try
        {
            props.load(fis);
        }
        catch (IOException ioe)
        {
            ioe.printStackTrace();
        }
        dobject = new AbstractDataAccessObject();
        dobject.setProperties(props);

2016 年 3 月 27 日上午 1:06:30 org.apache.catalina.core.StandardContext loadOnStartup 严重:Servlet /MobileServices 抛出 load() 异常 java.lang.NullPointerException 在 java.util.Properties$LineReader.readLine(Properties.java:434) 在 java.util.Properties.load0(Properties.java:353) 在 java.util.Properties.load(Properties.java:341) 在 com.dts.core.util.InitServlet.init(InitServlet.java:26) 在 org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088) 在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ......

Project directory structure

我也想知道为什么在 Netbeans 项目中创建配置文件文件夹。我可以使用这个文件夹来存储我的 system.properties 文件吗,如果是,那么我将如何从这里获取属性。在图像中查看我正在谈论的文件夹 - Highlight with Pink Color

我将非常感谢任何建议/指导/建议。

【问题讨论】:

  • 你检查过这个stackoverflow.com/questions/9892480/… 吗?
  • @DeendayalGarg 在您提到相同解决方案代码的帖子中特别写了什么。我的代码和接受的解决方案代码有什么不同吗?
  • 你有没有试过调试,看看 "sc.getInitParameter("config")" 的值是多少?
  • @DeendayalGarg 是的,我正在从配置文件中获取值。这是代码System.out.println(fileName); props.load(fis); System.out.println(props.getProperty("url")); 这是输出 >/WEB-INF/config/system.properties >jdbc:mysql://localhost:3306/stud_mng
  • @DeendayalGarg 但是现在解决了这个问题后我面临这个问题警告:java.lang.ClassNotFoundException:“com.mysql.jdbc.Driver”java.lang.ClassNotFoundException:“com.mysql.jdbc .Driver",我在项目的库文件夹中添加了 MySQL 驱动程序仍然出现此错误

标签: java web.xml configuration-files properties-file servletcontextlistener


【解决方案1】:

我发现了错误并纠正了它。这是一个愚蠢的错误。正如您在我的主要帖子中看到的那样,我给出了这样的 system.properties 代码

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/stud_mng" 
duser="root"
dpass=""
logfile=d:/log/test_log.txt

上面的代码有两个错误

1. url=jdbc:mysql://localhost:3306/stud_mng" 

2. dpass=""

我替换了这两行 -

url=jdbc:mysql://localhost:3306/stud_mng" 
dpass=

项目运行良好。

希望这对任何人都有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 2011-08-29
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多