jason
2005-02-04 16:44:25
42
3705

절 구해주실분 있으신가요? ㅠㅠ


일주일째 보구있는데 안돼요... ㅠㅠ

어느분 도와주실분 있으시면 제가 서버주소하고 패스워드를 갈켜드려서 도대체 어디에 문제생겼는지 봐주셨으면 합니다. ㅠㅠ

누구좀 도와주실수있으신가요?
0
  • 답변 42

  • bluerain
    2005-02-04 16:10:04
    무슨 에러 인지를 올려 주셔야 도와드릴 수 있는 부분인지를 알 것 같은데요.
    일단 에러 메세지 부터 올려 보심이...
  • jason
    2005-02-04 16:20:18
    java.lang.NullPointerException

    에러메세지는 이렇습니다. 아이디하고 패스워드를 서넣고 로그인하는 과정에서 생긴 에러인데... 일주일채 입니다... 앞이 보이질 않습니다. ㅠㅠ
  • quick
    2005-02-04 16:34:58
    소스 올려보세요.
    DB스키마하고 같이...
  • jason
    2005-02-04 16:44:57
    소스 올렸습니다...
  • jason
    2005-02-04 16:57:41
    직접 아래처럼 값을 써넣으면

    /login_out.jsp?cpId=sysadmin&password=sysadmin

    아래와같은 에러가 뜹니다.

    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    root cause

    java.lang.NullPointerException
    org.apache.jsp.jsp.admin.login.login_005fout_jsp._jspService(org.apache.jsp.jsp.admin.login.login_005fout_jsp:52)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  • bluerain
    2005-02-04 17:03:34
    소스에 보시면
    if( Integer.parseInt(ab.getCpLevel()) == 0 )
    이 부분에서 ab.getCpLevel()을 null check를 먼저 하셔야 합니다.
    DB에서 가져올때 필드에 Data가 not null이 아닌이상 null이 나올 수 있으므로 Check를 하셔야 합니다.
  • bluerain
    2005-02-04 17:23:47
    DB쪽 소스를 보니 field가 String 이더군요.
    ""인걸 가져와서 Integer로 변환 하다보니 에러가 나는것 같습니다. DB 쪽 소스에서
    ab.setCpLevel(rs.getString("cp_level")==null?"":rs.getString("cp_level")); 이것을
    ab.setCpLevel(rs.getString("cp_level")==null?"0":rs.getString("cp_level")); 으로
    수정 하십시오.
  • 아르
    2005-02-04 17:24:14


    String cpId=request.getParameter("id");
    String password=request.getParameter("password");

    넘겨 보니 password null나오네여..
    ---> 이렇게 고쳐야겠져
    String password=request.getParameter("passwd");
  • 아르
    2005-02-04 17:34:52
    그리고 저렇게 get 방식으로 넘기실라면 바로 에러 나져
    command parameter를 안 넘겼는데 command.equals(..)식으로 비교하니까.. null point나져.. 저렇게 테스트 하실거면 command도 붙여서 넘겨주시구여..
    글구 "".equals(aa)식으로 비교를..하는 습관을..
  • jason
    2005-02-04 17:35:14
    String password=request.getParameter("password");
    여기서 나오는 password 는 AdminMgr.java 여기에서 다시 정의 되는거 아닌가요? ㅡㅡㅋ
  • jason
    2005-02-04 17:38:15
    아르님 죄송합니다. 두번째 말씀하신건 무슨뜻인지... jsp 를 전혀 모르는 정황하에서 이런걸 하다나니... 난감하군요...;
  • jason
    2005-02-04 17:41:21
    아르님 수정된 소스부분을 올려주실수있겠습니까?
    그리고 passwd 로 고쳐보니 그런 변수?가 없다는 에러가 나더군요... password 가 맞는거 같습니다.
  • jason
    2005-02-04 17:42:37
    //bluerain님
    말씀해주신대로 고쳤는데... 계속 같은에러... ㅠㅠ
  • bluerain
    2005-02-04 17:43:59
    1. String password=request.getParameter("password");
    이것은 index.htm에서 input 으로 넘긴 name과 맞아야 합니다.(AdminMgr.java에서의 정의와는 상관없죠)

    2. "".equals(aa) 이부분은 equals의 사용법에 관한 문제인데요.
    aa.equals("")은 aa가 null일 경우등에 에러가 날수 있기때문에 "".equals(aa)로 하라는 거죠.
    저도 이부분은 들은지 한참되서 기억이 안나는데요.
    equals시는 아르님이 말씀하신대로 사용하시는게 에러율이 훨씬 적습니다.
  • '_'
    2005-02-04 17:44:25
    request.getParameter("password") 에서 password는 java에서 정의 되는게 아니라 넘어온 파라메터값의 명칭일 뿐입니다. html부분에서 name="pass" 라고 해놓으면 ("pass")라고 해놓아야 겠지요.. 그리고 java.lang.NullPointerException은 앞으로 프로그램을 짜다보면 수도없이 만나게 됩니다... 물론 쉽게 잡을 수 있는거지만 가끔 등잔밑이 어둡다고 바로 눈앞에 두고 못잡아낼때가 있죠.. 그때는 담배한대.. 피시고 들어와서 차근차근 1줄부터 쭉 ?터 내려가보세요 정 안되면 줄마다.. out.println(변수); 찍어봐도 돼구요 ...
  • 아르
    2005-02-04 17:48:34
    음 일단 login_out.jsp에서 다른부분 다지우고
    out.print(command);
    out.print(passwork);
    해보세요..?command='login'식으로 안넘겼으니까..
    command.equals(...) 부분에서 바로 nullpoint exception
    나니까.. 거기서 부턴 테스트가 안되져..
    글구 (mgr.login(cpId, password))부분에서는 재정의
    되는게 아니라 만약 포스트로 넘길때.. code가 위와같앴다면 command받아서 첫번째 if문으로는 들어가는데 password에 null값이 들어가니까 db쪽에서 exception 나겠져..
    anyway한번 다른거 다 주석하시고 post랑 get방식으로
    화면에 찍어보세요~
  • 아르
    2005-02-04 17:49:40
    다 지우지마시고 주석..ㅡ_ㅡ
    그리고 ?command=login&..... ''는 왜들어 갔다냐..
  • jason
    2005-02-04 17:50:54
    String password=request.getParameter("passwd");
    로 고치니 아래와같은 에러가 납니다.

    exception.MgrException: No parameters defined during prepareCall()
  • 아르
    2005-02-04 17:55:07
    한번 일단 값들 찍어보시고.. 값을 세개다 제대로 넘겨 받았나 함 보세요..
  • jason
    2005-02-04 17:57:39
    //아르님
    수정된 소스 올려주시면 고맙겠습니다. 꾸벅~
  • 아르
    2005-02-04 17:57:40
    /login_out.jsp?cpId=sysadmin&password=sysadmin&command=login
    이렇게 함 붙여서 넣으면 어떻게 되여? 원래 소스에..
  • jason
    2005-02-04 18:05:21
    //아르님

    commond 를 login 이라고 읽어오더군요...
  • 아르
    2005-02-04 18:05:47
    일단 저렇게 url 주고 해보시고 에러나면... 그 에러 메세지를... 보여주세여.. 다음 에러 메세지는 제가 알수가 없으니까.. 흠 내 말이 이상하다..ㅡ_ㅡ;;
  • 아르
    2005-02-04 18:07:50
    넹...url주고 해보라한건... 흠... 주석 다 풀고 해보시라구여...
    그래도 에러 나나 함 해보시라구여 먼가 엇갈리는듯한..
  • jason
    2005-02-04 18:09:50
    /login_out.jsp?cpId=sysadmin&password=sysadmin&command=login
    이렇게 붙히니 제일처음 로그인화면으로 돌아오는군요.
  • jason
    2005-02-04 18:11:43
    메일주소 남겨주시면 제가 서버주소하고 아이디를 보내드릴께요... 직접 봐주셨으면 고맙겠습니다. (__)
  • 아르
    2005-02-04 18:14:07
    네 그럼 아까 null point는 거기서 난게 맞구여..
    ../login/logout.jsp 로 간거 아닌가여?
    이젠 값들 찍어보면서 왜 거길로 돌아갔나 따라가 보세여..
  • jason
    2005-02-04 18:20:48
    String command = request.getParameter("command");

    if (command.equals("login") ) // 肺弊牢
    {
    String cpId=request.getParameter("id");
    String password=request.getParameter("password");


    try
    {
    AdminMgr mgr = AdminMgr.getInstance();

    여기에서 문제생긴거 같은데... 전혀 감을 못잡겠습니다...;;
  • jason
    2005-02-04 18:23:09
    현재는 위에 String password=request.getParameter("password");

    String password=request.getParameter("passwd");
    로 고친상황인데...

    exception.MgrException: No parameters defined during prepareCall()

    이런 에러가 납니다.
  • 아르
    2005-02-04 18:27:55
    if (mgr.login(cpId, password)) {
    AdminBean ab = mgr.getAdmin(cpId);
    session.setAttribute("admin.login", ab);

    if( Integer.parseInt(ab.getCpLevel()) == 0 ) // SYSADMIN이라면
    {
    response.sendRedirect("../sysadmin/sysadmin_page.jsp");
    }
    else
    {
    response.sendRedirect("../cpadmin/cpadmin_page.jsp");
    }

    }
    else
    { // 로그인 실패시
    response.sendRedirect("../login/logout.jsp");

    }

    에러가 안나신다니까...
    제가 볼땐 여기서여 mgr.login(cpId, password) 값이
    false여서..../login/logout.jsp 페이지로 간거 같은데
    돌아간 url이 login_out.jsp 로 간거 맞아여?..
  • jason
    2005-02-04 18:31:29
    예, url 이 /login/logout.jsp 로 들어간것같습니다.
  • 아르
    2005-02-04 18:32:22
    그렇게 고치셨으면... url치고 들어가시지 말구여
    index.jsp에서 id,password입력하고 들어가세요..

    걍 url치고 테스트 하실거면 url도 &passwd= 로 바꿔주시구요
  • jason
    2005-02-04 18:33:41
    근데 현재 에러메세지는 exception.MgrException: No parameters defined during prepareCall()
    이고 java.lang.NullPointerException 가 아니군요...;
  • 손님
    2005-02-04 18:33:42
    "".equals(aa) 이것과 aa.equals("") 차이좀 알려주세요....^^;; 초보거든요.
  • 아르
    2005-02-04 18:41:28
    그건 jsp에서 password를 null을 넘기니까 mgr에서 exception이 나서 throw new MgrException(ex); 서 나오는 exception이구여..
    password가 null인데.. if (password.compareTo(pass) == 0) 문장을 수행해서 나는걸거에여..
    그니까 지금 다시 로긴페이지로 돌아가는게...
    쿼리해서 나온 pass가 입력한 password랑 같지 않다는 거니까 pass값이 뭐가 나오나 찍어보세요
    근데 지금도 에러 나여?ㅡ_ㅡ;; 다시 돌아간다매여..
  • 아르
    2005-02-04 18:48:17
    아님 rs.next값이 없거나..해서 돌아가는거 같으니까..
    값들 어떻게 나오나 보고 디비에 값들 제대로 들어가 있나 보시구여...if (password.compareTo(pass) == 0)
    그리구
    if(pass.equals(password))로 비교하세요...
  • 아르
    2005-02-04 18:54:44
    rs.next가 true면
    혹시 모르니..if(pass.trim().equals(password.trim()))
    해서.. 양옆에 공백 없애서 비교해보시구여..
    어쨋든 많이 찍어보시구여..ㅡ_ㅡ;;
    에거.. 전 이제 나가야 할거같은데..
    별루 도와드리지도 못하고... 말만 이빠이..ㅡ_ㅡ;;
    수고하세요..
  • jason
    2005-02-04 18:58:07
    메인화면에서 로그인하고 값을 찍어보니 입력한거랑은 같게 나오고 도 디비에 비번과도 같습니다. 왜서 에러나는건지 전혀 모르겠습니다. exception.MgrException: No parameters defined during prepareCall()
    아직도 이 에러...;;
  • 아르
    2005-02-04 19:02:26
    pstmt = conn.prepareStatement("select password from CPINFO where cp_id = ? and valid='1'");
    pstmt.setString(1, id);

    에서 파라미터가 정의가 안됐다고 말하는거 같은데...ㅡ_ㅡ;; 문장에 이상 없는거 같은데.. 이상네여...
  • 아르
    2005-02-04 19:15:02
    전 이만 가봐야 되겠네여.. 다른 분이 보시다 아시면
    도와드렸음 좋겠네여.. 에거.. 수고하세요..
  • jason
    2005-02-04 19:15:24
    아르님 메일주소를 남겨주세요... ㅠㅠ
    저 오늘내로 이거 못하면 회사에서 쫓기웁니다.
    도와주세요... ㅠㅠ
  • 아르
    2005-02-04 19:33:41
    도와 드리고 싶은데 몰겠네여 ...
    지금 찍어보는것도 잘 안되시는것 같구..

    뻘짓 같아서 하시라 그러기도 그런데..
    pstmt = conn.prepareStatement("select password from CPINFO where cp_id = 'sysadmin' and valid='1'");
    같이..
    이런 식으로 저런식으로 해보세요..
    어디서 잘못된건가 테스트를... 제가 하는게아니라서...
    에거 전 진짜 가봐야되서... 죄송하고..
    잘되시길 빕니다..
  • 로그인을 하시면 답변을 등록할 수 있습니다.