powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ошибка при одновременном вызове сервлета
8 сообщений из 8, страница 1 из 1
ошибка при одновременном вызове сервлета
    #33224431
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
сервлет сделан как SingleThreadModel. Сервлет выполняет подключение к БД (Oracle), и передает на выполнение запрос на изменение данных. Если пытаешься выполнить почти одновременно - то при втором выхове - ошибка. Если подождать немного (30-50 сек) примерно, то второй вызов начинает выполняться.
...
Рейтинг: 0 / 0
ошибка при одновременном вызове сервлета
    #33224481
ra_12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как ошибку зовут?
...
Рейтинг: 0 / 0
ошибка при одновременном вызове сервлета
    #33224493
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
NullPointerException
...
Рейтинг: 0 / 0
ошибка при одновременном вызове сервлета
    #33224513
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дай код сервлета + полностью ошибку.
...
Рейтинг: 0 / 0
ошибка при одновременном вызове сервлета
    #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
ошибка при одновременном вызове сервлета
    #33224563
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
фактически сама ошибка на экран не выводиться. просто вилим сообщение от web-servera 500 Internal Server Error
...
Рейтинг: 0 / 0
ошибка при одновременном вызове сервлета
    #33224611
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уж слишком много у тебя параметров передается в DoSverka. Скорее всего один из них равен null.
После инициализации этих переменных в doGet проверяй их на null. Найди какой.
Как вариант.
...
Рейтинг: 0 / 0
ошибка при одновременном вызове сервлета
    #33224871
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
проверил точно null переменные это
un;up; а сомое интересное что я и не определяю их значение правильно. Даааа маловато опыта java-программирования.
Спасибо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / ошибка при одновременном вызове сервлета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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