Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / ошибка при одновременном вызове сервлета / 8 сообщений из 8, страница 1 из 1
19.08.2005, 09:43
    #33224431
fcs
fcs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при одновременном вызове сервлета
сервлет сделан как SingleThreadModel. Сервлет выполняет подключение к БД (Oracle), и передает на выполнение запрос на изменение данных. Если пытаешься выполнить почти одновременно - то при втором выхове - ошибка. Если подождать немного (30-50 сек) примерно, то второй вызов начинает выполняться.
...
Рейтинг: 0 / 0
19.08.2005, 10:01
    #33224481
ra_12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при одновременном вызове сервлета
А как ошибку зовут?
...
Рейтинг: 0 / 0
19.08.2005, 10:06
    #33224493
fcs
fcs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при одновременном вызове сервлета
NullPointerException
...
Рейтинг: 0 / 0
19.08.2005, 10:11
    #33224513
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при одновременном вызове сервлета
Дай код сервлета + полностью ошибку.
...
Рейтинг: 0 / 0
19.08.2005, 10:27
    #33224557
fcs
fcs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при одновременном вызове сервлета
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
 public   class  ToProcess  extends  HttpServlet  implements  SingleThreadModel 
{
   private   static   final  String CONTENT_TYPE = "text/html; charset=windows-1251";
   private  String un_t;
   private  String up_t;
  
   public   void  init(ServletConfig config)  throws  ServletException
  {
     super .init(config);
     try 
    {
       Class .forName("oracle.jdbc.driver.OracleDriver").newInstance();
    } catch (Exception ex)
    {
      
    }
  }

   public   void  doGet(HttpServletRequest request, HttpServletResponse response)  throws  ServletException, IOException
  {
     int  id_region =  0 ;     int  month_sv =  0 ;     int  year_sv =  0 ;
    String s_inn = ""; String s_kpp = "";
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    
    
    /*Пытаемся считать параметры*/
     try 
    {
        id_region = Integer.parseInt(request.getParameter("id_reg"));
        month_sv = Integer.parseInt(request.getParameter("month_num"));
        year_sv = Integer.parseInt(request.getParameter("year_num"));
        s_inn = request.getParameter("s_inn");
        s_kpp = request.getParameter("s_kpp");
      
    }
     catch (Exception e)
    {
      e.printStackTrace();
    }
        
     if (id_region!= 0  && month_sv != 0  && year_sv != 0  && s_inn.length()!= 0  && s_kpp.length()!= 0 )
    {           
         try 
        {
          DoSverka(un_t,up_t,id_region,month_sv,year_sv,s_inn, s_kpp,response,request); 
          response.sendRedirect("http://zeus.guszn.local/servlets/"+
                                "PrtList?ido=plist&id_reg="+id_region+"&month_sv="+month_sv+"&year_sv="+year_sv+"&s_inn="+s_inn+"&s_kpp="+s_kpp);    
        } catch (SQLException e){

          out.println(e.getMessage());
          out.close();
        }
      
    } else {
      
         try 
        {
           if (DoChek(response, request))
          {
            out.println();
            CreateSverkaList(response,un_t,up_t); 
          }
          
        } catch (SQLException e)
        {
          /*PrintWriter out = response.getWriter();
          response.setContentType(CONTENT_TYPE);*/
          //out.println(e.getMessage());
          //out.close();          
        }
    }       
  }
  
   public   void  DoSverka(String un, String up,  int  id_reg,  int  month_sv,  int  year_sv, String s_inn, String s_kpp,
                        HttpServletResponse response, HttpServletRequest request)  throws  SQLException, IOException
  {
    Connection cn =  null ;    PreparedStatement ps =  null ;
    //String user_n = un;      String pass = up;
    String sSQLBLOCK =  null ;
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter(); 
    
     try 
    {
      
      cn = DriverManager.getConnection("jdbc:oracle:oci8:"+un+"/"+up+"@zeus.guszn.local");      
 
/*Проверяем -------------------------------------------------------*/           
        sSQLBLOCK =  null ;
        sSQLBLOCK = "declare id_department integer; month_sv integer; year_sv integer;"+
                            "s_inn varchar(20); s_kpp varchar(20);"+
                    "begin "+
                    "id_department := ?; month_sv := ?; year_sv := ?; s_inn := ?; s_kpp := ?; "+
                    "edv.p_f_chek_1(id_department,1,month_sv,year_sv,s_inn,s_kpp);"+
                    "edv.p_f_chek_2(id_department,1,month_sv,year_sv,s_inn,s_kpp);"+
                    "edv.p_f_chek_3(id_department,1,month_sv,year_sv,s_inn,s_kpp);"+
                    "edv.p_o_chek_1(id_department,1,month_sv,year_sv,s_inn,s_kpp);"+
                    "edv.p_o_chek_2(id_department,1,month_sv,year_sv,s_inn,s_kpp);"+
                    "edv.p_o_chek_3(id_department,1,month_sv,year_sv,s_inn,s_kpp);"+
                    "edv.p_o_chek_4(id_department,1,month_sv,year_sv,s_inn,s_kpp);"+
                    "commit; end;";

         try 
        {
          ps = cn.prepareStatement(sSQLBLOCK);
          ps.setInt( 1 ,id_reg);  ps.setInt( 2 ,month_sv);
          ps.setInt( 3 ,year_sv);  ps.setString( 4 ,s_inn); ps.setString( 5 ,s_kpp);          
          ps.executeUpdate();
          
        } catch (SQLException ex)
        {
          out.println(ex.getMessage());
          out.flush();
          ps.close();
          cn.close();
          out.close();
        }
         catch (NullPointerException ex)
        {
          out.println(ex.getMessage());
          out.flush();
          ps.close();
          cn.close();
          out.close();
        }
      
/*----------------------------------------------------------------------------*/      
/*-------------------------------------------------------------------------*/      
       for  ( int  i= 1 ;i< 4 ;i++)
      {
        sSQLBLOCK =  null ;
        sSQLBLOCK = "begin edv.p_f_chek_"+i+"(?,0,?,?,?,?); commit; end;";        
         try 
        {
          ps = cn.prepareStatement(sSQLBLOCK);
          ps.setInt( 1 ,id_reg);  ps.setInt( 2 ,month_sv);
          ps.setInt( 3 ,year_sv);  ps.setString( 4 ,s_inn); ps.setString( 5 ,s_kpp);          
          ps.executeUpdate();
          
        } catch (SQLException ex)
        {
          ps.close();  cn.close();        out.close();
        }
      }
/*----------------------------------------------------------------------------*/      
       for  ( int  i= 1 ;i< 4 ;i++)
      {
        sSQLBLOCK =  null ;
        sSQLBLOCK = "begin edv.p_o_chek_"+i+"(?,0,?,?,?,?); commit; end;";
        
         try 
        {
          ps = cn.prepareStatement(sSQLBLOCK);
          ps.setInt( 1 ,id_reg);  ps.setInt( 2 ,month_sv);
          ps.setInt( 3 ,year_sv);  ps.setString( 4 ,s_inn); ps.setString( 5 ,s_kpp);          
          ps.executeUpdate();
          
        } catch (SQLException ex)
        {
          ps.close();          cn.close();          out.close();
        }
      }
/*----------------------------------------------------------------------------*/        
      ps.close();
      cn.close();
  
    } catch (SQLException e){
      ps.close();      cn.close();        out.close();
    } catch (Exception e){
      out.println(e.getMessage());
      ps.close();      cn.close();        out.close();
    }
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
}
   public   boolean  DoChek(HttpServletResponse response, HttpServletRequest request)  throws  IOException, SQLException
  {
       boolean  res = false;
      CheckConfiguration check =  new  CheckConfiguration();
      
       if (check.CheckConfiguration(request))
      {
        un_t = check.authUserName;
        up_t = check.authUserPass;
        res = true;        
      } else 
      {
         if (check.getAutorizationParam(request, response))
        {
          un_t = check.authUserName;
          up_t = check.authUserPass;
          res = true;
        } else 
        {
          response.setStatus(response.SC_UNAUTHORIZED);
          response.setHeader("WWW-Authenticate","Basic realm=\"realm\"");
        }
      }
       return  res;
  }  
   public   void  doPut(HttpServletRequest request, HttpServletResponse response)  throws  ServletException, IOException
  {
    doGet(request,response);
  }
}

}

ошибка сервлет называется ToProcess
[19/08/2005 11:50:57:453 CST] java.lang.NullPointerException
at ToProcess.DoSverka(ToProcess.java:195)
at ToProcess.doGet(ToProcess.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:499)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:484)
...
Рейтинг: 0 / 0
19.08.2005, 10:28
    #33224563
fcs
fcs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при одновременном вызове сервлета
фактически сама ошибка на экран не выводиться. просто вилим сообщение от web-servera 500 Internal Server Error
...
Рейтинг: 0 / 0
19.08.2005, 10:45
    #33224611
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при одновременном вызове сервлета
Уж слишком много у тебя параметров передается в DoSverka. Скорее всего один из них равен null.
После инициализации этих переменных в doGet проверяй их на null. Найди какой.
Как вариант.
...
Рейтинг: 0 / 0
19.08.2005, 11:58
    #33224871
fcs
fcs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при одновременном вызове сервлета
проверил точно null переменные это
un;up; а сомое интересное что я и не определяю их значение правильно. Даааа маловато опыта java-программирования.
Спасибо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / ошибка при одновременном вызове сервлета / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]