0

-mümkün değil Şöyle system.properties dosyasından özelliklerini almak için çalışıyorum

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

Ben de web.xml''deki bu dosyayı eşlenen böyle -

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

Şimdi burada bu InitServlet.java dosya sorun yapılandırma klasörü altında kaydedilir system.properties özelliklerini almaya çalışıyorum buradan geldi. Burada, hat props.load(fis); den istisna atıyor kodudur ben birkaç satır istisna ve klasör ağacının yapısını ilanıyla -

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

Mar 27, 2016 01:06:30 org.apache.catalina. core.StandardContext loadOnStartup CİDDİ: Servlet/MobileServices load() istisna attı java.lang.NullPointerException java.util.Properties.load0 (Varlıkları java.util.Properties $ LineReader.readLine (Properties.java:434) de .java: 353) java.util.Properties.load (Properties.java:341) adresinde com.dts.core.util.InitServlet.init (InitServlet.j org org.apache.catalina.core.StandardWrapper.loadServlet (StandardWrapper.java:1193) de org.apache.catalina.core.StandardWrapper.initServlet (StandardWrapper.java:1280) az 26): Ava. apache.catalina.core.StandardWrapper.load org.apache.catalina.core.StandardContext de org.apache.catalina.core.StandardContext.loadOnStartup (StandardContext.java:5176) 'den (StandardWrapper.java:1088) . startInternal org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) 'den (StandardContext.java:5460) ......

Project directory structure

Ayrıca, Netbeans projelerinde yapılandırma dosyası klasörünün neden oluşturulduğunu merak ediyorum. Varsa, bu özellikten yararlanarak system.properties dosyasını saklamak için bu klasörü kullanabilir miyim? Resimde gördüğünüz klasöre bakın - Highlight with Pink Color

Her türlü öneri/rehberlik/tavsiye için çok minnettar olacağım.

+0

bunu kontrol ettiniz mi http://stackoverflow.com/questions/9892480/loading-properties-file-in-init-of-servlet-without-using-context-param-tag-in? –

+0

@DeendayalGarg Bu yazıda özel olarak yazılan aynı çözüm kodundan bahsediyorsunuz. Kodumda ve kabul edilen çözüm kodunda bir fark var mı? –

+0

Hata ayıklamayı denediniz mi ve "sc.getInitParameter (" config ")" değerinin ne olduğunu gördünüz mü? –

cevap

1

Hatayı buldum ve düzeltdim. Onun aptalca bir hatası. Eğer benim ana mesaj görebileceğiniz gibi ben 2 hatalar Bunları yerine

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

ve

2. dpass="" 

vardır yukarıdaki kodda bu

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

gibi system.properties kodunu verdi 2 satır -

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

Ve proje mükemmel çalışıyor.

Bu yardımcı olabilir mi?