2012-11-30 3 views
-3

안녕하세요 저는 java/jsp를 (를) 처음 사용하면서 신입니다.등록 정보 파일을 기반으로 데이터베이스에 연결할 수 없습니다

jsp 파일이 이전 페이지에서받는 매개 변수에 따라 데이터베이스에 연결하려고합니다.

String userinfo = request.getParameter("userinfo"); 
try { 
     InputStream in = getServletContext().getResourceAsStream("/WEB-INF/db.properties"); 
     properties.load(in); 
     db_conn = userinfo + "_conn"; 
     db_user = userinfo + "_user"; 
     db_pass = userinfo + "_pass"; 
     connString = properties.getProperty(db_conn).toString(); 
     connUser = properties.getProperty(db_user).toString(); 
     connPass = properties.getProperty(db_pass).toString(); 
     bPath = properties.getProperty("exec_path").toString(); 
     in.close(); 
     } catch (IOException ex) { 
     System.out.println(ex); 
     } 

     try { 
     // --- Required database stuff --- 
     DriverManager.registerDriver(new oracle.jdbc.OracleDriver()); 
     Connection conn = DriverManager.getConnection(connString, connUser, connPass); 
     Statement stmt = conn.createStatement(); 
     More codes.... 
     } 

db.properties

 guest_conn=jdbc:oracle:thin:@33.333.3.33:3333:DKSE1 
     guest_user=guest 
     guest_pass=guestpw 

     user_conn=jdbc:oracle:[email protected]:4444:ESMZ1 
     user_user=user 
     user_pass=upw1 

     user1_conn=jdbc:oracle:[email protected]:1111:GEPD1 
     user1_user=user1 
     user1_pass=upw1 

     batch_exec_path = ${SERVER_DIR} 
: 내가

try { 
     InputStream in = getServletContext().getResourceAsStream("/WEB-INF/db.properties"); 
     properties.load(in); 
     connString = properties.getProperty("db_conn").toString(); 
     connUser = properties.getProperty("db_user").toString(); 
     connPass = properties.getProperty("db_pass").toString(); 
     bPath = properties.getProperty("exec_path").toString(); 
     in.close(); 
     } catch (IOException ex) { 
     System.out.println(ex); 
     } 

처럼 하나의 DB에 연결하고 db.properties 파일이

 db_conn=jdbc:oracle:thin:@33.333.3.33:3333:DKSE1 
     db_user=guest 
     db_pass=guestpw 

내 시도가 포함되어있는 경우 내 프로그램이 작동

역 cktrace

Nov 30, 2012 9:03:55 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [jsp] in context with path [/dashboard] threw exception [An exception occurred processing JSP page /alpharunBatch.jsp at line 106 

103:    db_conn = userinfo + "_conn"; 
104:    db_user = userinfo + "_user"; 
105:    db_pass = userinfo + "_pass"; 
106:    connString = properties.getProperty(db_conn).toString(); 
107:    connUser = properties.getProperty(db_user).toString(); 
108:    connPass = properties.getProperty(db_pass).toString(); 
109:    bPath = properties.getProperty("exec_path").toString(); 


Stacktrace:] with root cause 
java.lang.NullPointerException 
    at org.apache.jsp.alpharunBatch_jsp._jspService(alpharun_jsp.java:192) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

나는 근본적으로 잘못된 것을하고 있습니까? 도움 주셔서 감사합니다.

+0

질문을 혼합하지 마십시오. 속성을 검색하는 데 문제가 있습니다. 나중에 JDBC에 대해 해당 속성을 사용한다는 사실은 중요하지 않습니다. 대답을 요청하기 전에 더 나은 문제를 확인하십시오. 이 경우에는 쉽게 찾을 수 있지만 더 복잡한 질문에는 답이 없을 것입니다. – SJuan76

답변

0

시도 테스트를 위해 다음

이 또한 변경 (SRC)

변화

InputStream in = getServletContext().getResourceAsStream("db.properties"); 

InputStream in = getServletContext().getResourceAsStream("/WEB-INF/db.properties"); 

것을 클래스 경로 폴더에 속성을 넣어

properties.getProperty("exec_path").toString(); 

properties.getProperty("batch_exec_path").toString(); 
+0

nope :(작동하지 않음 – user1516649

+1

문자열 userinfo = request.getParameter ("userinfo"); 은 "user"값을 반환합니다. –

+0

예, 사용자 user1이 게스트 – user1516649

관련 문제