2013-07-03 4 views
0

그래서 javabean (ProductDataBean.java)을 통해 mysql 데이터베이스에서 데이터를 검색하려는 jsp 파일 (ShowProducCatalog.jsp)이 있습니다. netbeans IDE를 사용하고 있습니다. netbeans ID 테이블을 만들고 mysql 워크 벤치에서 동일한 테이블을 보는 것으로 서버가 실행 중인지 확인했습니다. 하지만 난 내 응용 프로그램을 시작할 때마다 내가이 오류null 포인터 예외 Java 웹 응용 프로그램

org.apache.jasper.JasperException: An exception occurred processing JSP page  /ShowProductCatalog.jsp at line 9 
6: 
7: <html> 
8:  <body> 
9:   <% List productList = data.getProductList(); 
10:    Iterator prodListIterator = productList.iterator(); 
11:   %> 
12: 

을 얻을 그리고 근본 원인은 내 콩 근본 원인에서입니다 여기에

java.lang.NullPointerException 
    cart.ProductDataBean.getProductList(ProductDataBean.java:36) 
    org.apache.jsp.ShowProductCatalog_jsp._jspService(ShowProductCatalog_jsp.java:81) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 

오류가 형태로 제공 내 ProductDataBean 섹션 :

public class ProductDataBean implements Serializable 
{ 
    private static Connection connection; 

    public ProductDataBean() 
    { 
     try 
     { 
       String userName = "root"; 
       String password = "root"; 
       String url = "jdbc:mysql://localhost:/eshopdb"; 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 
     connection = DriverManager.getConnection(url,userName,password); 
       System.out.println("Database connection established"); 
     }catch(Exception e){e.printStackTrace();} 
    } 

    public static Connection getConnection() 
    { 
     return connection; 
    } 

    public ArrayList getProductList() throws SQLException 
    { 
     ArrayList productList = new ArrayList(); 
     Statement statement = connection.createStatement();//ERROR HERE 
     ResultSet results = statement.executeQuery("SELECT * FROM product"); 

     while (results.next()) 
     {... 

연결 변수가 초기화되지 않았나 보입니다! 내 사용자 이름, 비밀번호 및 URL은 정확합니다. 도와주세요!

+0

일반적으로 게시 할 때 오류가 발생하는 줄에 대해 명시 적으로 표시하는 것이 좋습니다. –

+0

제네릭이나 JSTL의 ''을 사용할 수없는 이유가 있습니까? JSP에 Java 코드를 넣지 마십시오. 대신, 애플리케이션에서'productList'를 요청 속성으로 만들어야합니다. 단위 테스트 해 봤어? –

+0

오류가 발생한 부분의 코드를 지정했습니다. 그것은 콩에 있습니다. 나는 자바에서 웹 개발을 처음 접했습니다. 이것은 첫 번째 실험실 중 하나입니다 – mbass

답변

0

아니요.

  String url = "jdbc:mysql://localhost/eshopdb"; 

이 당신이 당신이 길을 가서는 안 기본 포트 3306

을 사용하고 있다고 가정 http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html

를 참조하십시오. JSP의 스크립틀릿 코드는 1998 빈티지 요소입니다.

귀하의 ProductDataBean은 데이터베이스 연결을 획득해서는 안됩니다. 연결 풀링은 갈 길이 멀다.

리소스를 정리하지 않은 것 같습니다. 이 응용 프로그램은 데이터베이스에서 연결 및 커서가 부족하므로 짧은 순서로 충돌합니다.

+0

기본 포트 3306을 추가했는데 작동하지 않습니다. 링크에있는 내용과 어떤 차이도 보이지 않습니다. 내 문제가 뭐니? – mbass

+0

저는 자바로 웹 개발을 처음 접했습니다. 연결 풀링은 나에게 또 다른 새로운 개념이 될 것입니다. 그리고 솔직히 나는 시간이 없다. 나는 당신의 솔루션을 무시함으로써 무례한 것을 의미하지는 않는다. 그러나 나는 단지 그것을 할 수있는 방법이 있다면 어떻게 될 것인가? – mbass