无法从Servlet页面

时间:2016-03-27 04:22:44

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

我正在尝试从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文件问题,从这里我试图获取system.properties的属性,该属性保存在config文件夹下。这是从行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 SEVERE:Servlet / MobileServices引发了load()异常   java.lang.NullPointerException at   java.util.Properties $ LineReader.readLine(Properties.java:434)at   java.util.Properties.load0(Properties.java:353)at   java.util.Properties.load(Properties.java:341)at   com.dts.core.util.InitServlet.init(InitServlet.java:26)at   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

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

1 个答案:

答案 0 :(得分:1)

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

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

在上面的代码中有2个错误

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

2. dpass=""

我替换了这两行 -

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

项目运行良好。

这可以帮助任何人。