2012-05-07 7 views
2

Я создал приложение мидлета, которое может импортировать данные из базы данных (реализовано с помощью oracle на ПК) и вставить данные в одну и ту же базу данных, поэтому приложение работает очень хорошо в эмулятор (Netbeans IDE).Какая правильная конфигурация для подключения мидлета к сервлету

Устройство поддерживает MIDP 2.1 и JSR 172: http://www.mobilerated.com/nokia-5800-xpressmusic-specifications.html

То, что я хочу соединяет это приложение с ПК ти связи Wi-Fi, но когда я пытаюсь реализовать это приложение в телефоне (КПК или смартфон, как Nokia C6), похоже, что между мидлетом (в терминале хендлера) и сервлетом (на ПК) нет связи, поэтому я не могу получить ответа от ПК.

Это код, который я использовал в мидлет:

private void doInsertDataEtat() throws IOException 
    { 
    HttpConnection http = null; 
    InputStream iStrm = null; 


    url ="http://192.168.1.2:8080/TESTWEB/InsertDataEtat" +"?"+"loconum="+List_Num.getString(List_Num.getSelectedIndex()).substring(0, 4) +"&"+"datedevisite="+nbrdate+"&"+"heuredebut="+dateFieldAc.getDate().toString().substring(11,16)+"&"+"etat="+Etatfinal.getString(Etatfinal.getSelectedIndex()).replace(' ', '+') +"&"+"observationetat="+observationEtat.getString().replace(' ', '+') +"&"+"dureevisite="+dureevisite; 

    try 
    { 
     // Create the connection 
     http = (HttpConnection)Connector.open(url); 
     System.out.println("url: " + url);   

     // 2) Get header information 
     if (http.getResponseCode() == HttpConnection.HTTP_OK) 
     { 

     // afficher les données recus de la servlet par la methode get 

      System.out.println("INSERTION REUSSITE"); 


     } 
     }catch(Exception e){ 
      e.printStackTrace(); 
      Alert alert = new Alert("Erreur de Connexion", "Désolé , il y a une erreur au nivau de la connextion au serveur \n"+e.getMessage(), null, AlertType.ERROR); 
      alert.setTimeout(Alert.FOREVER); 
      display.setCurrent(alert); 
     } 
    finally{ 
     // detruire les variable apres l'utilisation 
     if (iStrm != null) 
     iStrm.close(); 
     if (http != null) 
     http.close(); 
    } 
    } 

Я хочу знать, что такое изменение, что я должен сделать для этой работы приложения хорошо?

Примечание: модифицирован после ответа члена сайта, с той же проблемой после изменения URL с @ip


@ip моего ПК является: 192.168.1.2
и @ip из маршрутизатор: 192.168.1.1
К сожалению, я не знаю, как получить @ip моего мобильного телефона.

@WebServlet(name = "InsertDataEtat", urlPatterns = {"/InsertDataEtat"}) 
public class InsertDataEtat extends HttpServlet { 

    public String loconum,observationEtat,datevisite,heuredebut,etat,dureevisite; 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/plain"); 
     PrintWriter out = response.getWriter(); 
     try 
     { 

       //parametre passer du midlet a la servlet par la methode GET 
        loconum = request.getParameter("loconum"); 
        etat = request.getParameter("etat").replace('+', ' '); 
        datevisite = request.getParameter("datedevisite"); 
        heuredebut = request.getParameter("heuredebut"); 
        observationEtat = request.getParameter("observationetat").replace('+', ' '); 
        observationEtat = observationEtat.replace("'", "''"); 
        dureevisite=request.getParameter("dureevisite"); 


            String sql="INSERT INTO ETAT VALUES('"+loconum+"','" 
         +datevisite+"','"+observationEtat+"','"+etat+"','"+heuredebut+"','"+dureevisite+"')"; 
        System.out.println(sql); 
       //---------------------------------------------------------- 
       Class.forName("oracle.jdbc.driver.OracleDriver"); 
       Connection con=DriverManager.getConnection 
       ("jdbc:oracle:thin:@th-d3a2629a531d:1521:XE","ONCFDB","ONCFDB"); 
       Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 



       stmt.executeUpdate(sql); 
       System.out.println("c'est fait avec succés");  


      } 
     catch(Exception e) 
     { 
      System.out.println("ça marche pas "); 
     } 

     out.close(); 
    } 

} 
+0

поддерживает ли ваш телефон [JSR 172] (http://stackoverflow.com/questions/tagged/jsr172) API J2ME Web Services? – gnat

+0

на самом деле я не знаю, поддерживает ли мой selphone jsr или нет, что я знаю, это поддержка MIDP 2.1 (в соответствии с конфигурацией selphone nokia expressmusic 5800), но как я могу узнать эту информацию –

+0

Я нашел эту информацию в этот сайт, мой selphone поддерживает jsr 172 http://www.mobilerated.com/nokia-5800-xpressmusic-specifications.html –

ответ

0

Ваш URL-адрес указывает на localhost, который является локальным интерфейсом loopback. Если вы выполняете этот код на мобильном телефоне, он не решит его. Поместите IP-адрес вашего компьютера вместо «localhost»

+0

Я сделал эту конфигурацию, создав wirless-сеть, и установлена ​​связь между slephoen и reouter , то же самое для соединения между ПК и маршрутизатором .... такая же проблема все еще присутствует, никакого ответа с сервера –

+0

Не могли бы вы добавить стекtrace ошибки, которую вы получаете? –

+0

Я не получаю никаких ошибок в эмуляторе, но когда я реализую мидлет в selphone и отправляю свой запрос, я получаю ошибку -33 после большего времени (более 60 секунд) –