0

Ich versuche, die Eigenschaften von system.properties-Datei zu erhalten, die wie folgt aussieht -Nicht in der Lage, die Eigenschaften von system.properties in Servlets Seite zu holen

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

ich kartiert diese Datei auch in meinem web.xml so -

<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> 

hier dieses InitServlet.java Datei Problem kam, um von hier aus ich die Eigenschaften von system.properties zu holen versuchen, die unter Config-Ordner gespeichert wird. Hier ist der Code, die Ausnahme von der Linie wirft props.load(fis);, ich bin Entsendung paar Zeilen Ausnahme und die Struktur der Ordnerstruktur -

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); 

27. März 2016 01.06.30 org.apache.catalina. core.StandardContext loadOnStartup SCHWEREN: Servlets/mobile warf load() Ausnahme java.lang.NullPointerException bei java.util.Properties $ LineReader.readLine (Properties.java:434) bei java.util.Properties.load0 (Eigenschaften .java: 353) unter java.util.Properties.load (Properties.java:341) unter com.dts.core.util.InitServlet.init (InitServlet.j AVA: 26) bei org.apache.catalina.core.StandardWrapper.initServlet (StandardWrapper.java:1280) bei org.apache.catalina.core.StandardWrapper.loadServlet (StandardWrapper.java:1193) bei org. apache.catalina.core.StandardWrapper.load (StandardWrapper.java:1088) bei org.apache.catalina.core.StandardContext.loadOnStartup (StandardContext.java:5176) bei org.apache.catalina.core.StandardContext. startInternal (StandardContext.java:5460) bei org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) ......

Project directory structure

Auch ich frage mich, warum Konfigurationsdatei Ordner in Netbeans Projekte erstellt wird. Kann ich diesen Ordner verwenden, um meine Datei system.properties zu speichern, wenn ja, dann von hier, wie ich die Eigenschaften bekommen werde. Sehen Sie im Bild den Ordner, über den ich spreche - Highlight with Pink Color

Ich werde für jeden Vorschlag/Anleitung/Beratung sehr dankbar sein.

+0

haben Sie dies überprüft http://stackoverflow.com/questions/9892480/loading-properties-file-in-in-it-of-servlet-without-using-context-param-tag-in? –

+0

@DeendayalGarg, was speziell in der Post geschrieben Sie den gleichen Lösungscode erwähnen. Gibt es einen Unterschied in meinem Code und im akzeptierten Lösungscode? –

+0

haben Sie versucht, zu debuggen und zu sehen, was der Wert von "sc.getInitParameter (" config ")"? –

Antwort

1

Ich habe den Fehler gefunden und korrigiert. Es ist ein dummer Fehler. Wie Sie in meinem Haupt-Beitrag sehen können habe ich den Code von system.properties wie diese

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

in obigem Code gibt es 2 Fehler

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

und

2. dpass="" 

ich diese ersetzen 2 Zeilen -

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

Und das Projekt läuft perfekt.

Möge dies jedem helfen.