2012-04-17 3 views
0

웹 포털을 구축 중이며 Hibernate를 사용하여 MySQL에 액세스하고 가져온 데이터를 JSP로 밀어 표 형식으로 인쇄합니다. 서블릿 배포를 위해 Tomcat을 사용하고 있습니다. 내 서블릿은 3 개의 HQL 쿼리를 생성 한 다음 검색된 데이터를 JSP로 푸시해야합니다. 서블릿을 배포 한 후 처음으로 HTML 양식을 사용하여 쿼리를 작성하면 올바르게 작동합니다. 또한 Eclipse 콘솔에서 실행중인 3 개의 HQL 쿼리를 모두 볼 수 있습니다. 하지만 내가 다시 쿼리를 만들려고 할 때, 심지어 내 HTML 폼에서 마지막으로 같은 쿼리, 나는 JSP 페이지 (테이블을 채우려 고 시도했다)에있는 모든 데이터를 얻지 못했습니다. 이클립스 콘솔을 점검 해보니, 첫 번째 HQL 쿼리 만 실행되었다는 것을 알았고 오류 메시지조차 나오지 않았다. Tomcat을 다시 시작하거나 서블릿을 재배포하면 작동하지만 다시 한 번만 작동합니다. JSP서블릿은 배포 후에 한 번만 데이터베이스에서 데이터를 반환합니다.

Hibernate: 
    select 
     testcases0_.activityName as col_0_0_, 
     testcases0_.testCaseID as col_1_0_ 
    from 
     TestCases testcases0_ 
    where 
     testcases0_.testcaseName like 'Deploy 200 tunings on 10 devices with 0 tunings' Hibernate: 
    select 
     transactio0_.transactionTime as col_0_0_ 
    from 
     Transactions transactio0_ cross 
    join 
     Samples samples1_ cross 
    join 
     Builds builds2_ cross 
    join 
     TestBeds testbeds7_ cross 
    join 
     Machines server8_ 
    where 
     transactio0_.sampleId=samples1_.sampleId 
     and samples1_.buildId=builds2_.buildId 
     and samples1_.testBedId=testbeds7_.testBedId 
     and testbeds7_.serverId=server8_.machineId 
     and (
      builds2_.buildMajorVersion like 4 
     ) 
     and (
      builds2_.buildMinorVersion like 4434 
     ) 
     and (
      samples1_.runDate like '2012-02-25' 
     ) 
     and (
      transactio0_.testCaseId like 1 
     ) 
     and (
      server8_.ipv4Address like '10.104.52.200' 
     ) Hibernate: 
    select 
     transactio0_.transactionTime as col_0_0_ 
    from 
     Transactions transactio0_ cross 
    join 
     Samples samples1_ cross 
    join 
     Builds builds2_ cross 
    join 
     TestBeds testbeds7_ cross 
    join 
     Machines server8_ 
    where 
     transactio0_.sampleId=samples1_.sampleId 
     and samples1_.buildId=builds2_.buildId 
     and samples1_.testBedId=testbeds7_.testBedId 
     and testbeds7_.serverId=server8_.machineId 
     and (
      builds2_.buildMajorVersion like 4 
     ) 
     and (
      builds2_.buildMinorVersion like 4434 
     ) 
     and (
      samples1_.runDate like '2012-02-25' 
     ) 
     and (
      transactio0_.testCaseId like 2 
     ) 
     and (
      server8_.ipv4Address like '10.104.52.200' 
     ) Hibernate: 
    select 
     transactio0_.transactionTime as col_0_0_ 
    from 
     Transactions transactio0_ cross 
    join 
     Samples samples1_ cross 
    join 
     Builds builds2_ cross 
    join 
     TestBeds testbeds7_ cross 
    join 
     Machines server8_ 
    where 
     transactio0_.sampleId=samples1_.sampleId 
     and samples1_.buildId=builds2_.buildId 
     and samples1_.testBedId=testbeds7_.testBedId 
     and testbeds7_.serverId=server8_.machineId 
     and (
      builds2_.buildMajorVersion like 4 
     ) 
     and (
      builds2_.buildMinorVersion like 4434 
     ) 
     and (
      samples1_.runDate like '2012-02-25' 
     ) 
     and (
      transactio0_.testCaseId like 3 
     ) 
     and (
      server8_.ipv4Address like '10.104.52.200' 
     ) Hibernate: 
    select 
     transactio0_.transactionTime as col_0_0_ 
    from 
     Transactions transactio0_ cross 
    join 
     Samples samples1_ cross 
    join 
     Builds builds2_ cross 
    join 
     TestBeds testbeds7_ cross 
    join 
     Machines server8_ 
    where 
     transactio0_.sampleId=samples1_.sampleId 
     and samples1_.buildId=builds2_.buildId 
     and samples1_.testBedId=testbeds7_.testBedId 
     and testbeds7_.serverId=server8_.machineId 
     and (
      builds2_.buildMajorVersion like 4 
     ) 
     and (
      builds2_.buildMinorVersion like 4434 
     ) 
     and (
      samples1_.runDate like '2012-02-25' 
     ) 
     and (
      transactio0_.testCaseId like 4 
     ) 
     and (
      server8_.ipv4Address like '10.104.52.200' 
     ) Hibernate: 
    select 
     transactio0_.transactionTime as col_0_0_ 
    from 
     Transactions transactio0_ cross 
    join 
     Samples samples1_ cross 
    join 
     Builds builds2_ cross 
    join 
     TestBeds testbeds7_ cross 
    join 
     Machines server8_ 
    where 
     transactio0_.sampleId=samples1_.sampleId 
     and samples1_.buildId=builds2_.buildId 
     and samples1_.testBedId=testbeds7_.testBedId 
     and testbeds7_.serverId=server8_.machineId 
     and (
      builds2_.buildMajorVersion like 4 
     ) 
     and (
      builds2_.buildMinorVersion like 4434 
     ) 
     and (
      samples1_.runDate like '2012-02-25' 
     ) 
     and (
      transactio0_.testCaseId like 5 
     ) 
     and (
      server8_.ipv4Address like '10.104.52.200' 
     ) Hibernate: 
    select 
     transactio0_.transactionTime as col_0_0_ 
    from 
     Transactions transactio0_ cross 
    join 
     Samples samples1_ cross 
    join 
     Builds builds2_ cross 
    join 
     TestBeds testbeds7_ cross 
    join 
     Machines server8_ 
    where 
     transactio0_.sampleId=samples1_.sampleId 
     and samples1_.buildId=builds2_.buildId 
     and samples1_.testBedId=testbeds7_.testBedId 
     and testbeds7_.serverId=server8_.machineId 
     and (
      builds2_.buildMajorVersion like 4 
     ) 
     and (
      builds2_.buildMinorVersion like 4434 
     ) 
     and (
      samples1_.runDate like '2012-02-25' 
     ) 
     and (
      transactio0_.testCaseId like 6 
     ) 
     and (
      server8_.ipv4Address like '10.104.52.200' 
     ) Hibernate: 
    select 
     transactio0_.transactionTime as col_0_0_ 
    from 
     Transactions transactio0_ cross 
    join 
     Samples samples1_ cross 
    join 
     Builds builds2_ 
    where 
     transactio0_.sampleId=samples1_.sampleId 
     and samples1_.buildId=builds2_.buildId 
     and (
      builds2_.buildMajorVersion like 4 
     ) 
     and (
      builds2_.buildMinorVersion like 4434 
     ) 
     and samples1_.baseline=1 10 

콘솔 출력

  String major,date,minor,ip; 
     double[][][] transactionTime = new double[2][50][10]; 
     int[] testCaseId = new int[10]; 
     String[] activityName = new String[10]; 
     major=req.getParameter("major"); 
     date=req.getParameter("date"); 
     minor=req.getParameter("minor"); 
     ip=req.getParameter("ip"); 
     String testCaseName=req.getParameter("testCaseName"); 
     Session session = null; 


     try{ 

     SessionFactory sessionFactory = new 

    Configuration().configure() 
    .buildSessionFactory(); 
     session =sessionFactory.openSession(); 

     //Create Select Clause HQL 


     String SQL_QUERY2 ="Select testCases.activityName,testCases.testCaseID from TestCases testCases where testCases.testcaseName like \'" + testCaseName + "\'"; 
     Query query2 = session.createQuery(SQL_QUERY2); 
     for(Iterator it2=query2.iterate();it2.hasNext();ctr2++) 
       { 
       Object[] act = (Object[]) it2.next(); 
       activityName[ctr2]=(String) act[0]; 
       testCaseId[ctr2] = (Integer) act[1]; 
       } 


     for(int j=0;j<ctr2;j++){ 
      ctr=0; 
     String SQL_QUERY3 ="Select tran.transactionTime from Transactions tran where tran.samples.builds.buildMajorVersion like " + major + " and tran.samples.builds.buildMinorVersion like " + minor + " and tran.samples.runDate like \'" + date + "\' and tran.testCases.testCaseID like " + testCaseId[j] + " and tran.samples.testbeds.server.ipv4Address like \'" + ip + "\'"; 
     Query query3 = session.createQuery(SQL_QUERY3); 
     for(Iterator it3=query3.iterate();it3.hasNext();ctr++) 
       { 
       Object time = (Object) it3.next(); 
       transactionTime[0][j][ctr]=(Double) time; 
       int precision = 100; 
       transactionTime[0][j][ctr] = Math.floor(transactionTime[0][j][ctr]*precision+0.5)/precision; 
       } 
     } 



     for(int j=0;j<ctr2;j++){ 
      ctr3=0; 
     String SQL_QUERY5 ="Select tran.transactionTime from Transactions tran where tran.samples.builds.buildMajorVersion like " + major + " and tran.samples.builds.buildMinorVersion like " + minor + " and tran.samples.baseline=1"; 
     Query query5 = session.createQuery(SQL_QUERY5); 
     for(Iterator it5=query5.iterate();it5.hasNext();ctr3++) 
       { 
       Object time = (Object) it5.next(); 
       transactionTime[1][j][ctr3]=(Double) time; 
       int precision = 100; 
       transactionTime[1][j][ctr3] = Math.floor(transactionTime[1][j][ctr3]*precision+0.5)/precision; 
       } 
     } 





session.close(); 
     } 
     catch(Exception e){ 
      System.out.println(e.getMessage()); 
     } 
     finally{ 

     } 







    req.setAttribute("major",major); 
    req.setAttribute("minor",minor); 
    req.setAttribute("date",date); 
    req.setAttribute("ip",ip); 
    req.setAttribute("testCaseName",testCaseName); 
    req.setAttribute("transactionTime", transactionTime); 
    req.setAttribute("activityName", activityName); 
    req.setAttribute("sampleNumBase", ctr3); 
    req.setAttribute("sampleNumRun", ctr); 
     req.getRequestDispatcher("/WEB-INF/src/BaselineRawData.jsp").forward(req, res); 
} 

}

콘솔 처음에 Eclipse에서 출력 및 성공적인 실행> -> 서블릿 - 흐름이 HTML 양식 '예요

도와주세요 후속 및 실패한 실행에 대한 Eclipse에서

Hibernate: 
    select 
     testcases0_.activityName as col_0_0_, 
     testcases0_.testCaseID as col_1_0_ 
    from 
     TestCases testcases0_ 
    where 
     testcases0_.testcaseName like 'Deploy 200 tunings on 10 devices with 0 tunings' 
10 
+1

외부 서블릿의 코드를 붙여 초기화 된 것이 었습니다. –

+0

서블릿 코드 게시 –

+0

HTMl 페이지를 새로 고친 다음 다시 양식을 제출하면 어떻게됩니까? –

답변

0

하드릭 said ctr2으로 문제가있는 것 같습니다. 루프 반복은이를 기반으로합니다. 어디서 초기화 되나요?

이 문제는 ctr2ctr 선언 및 D 서블릿 코드

관련 문제