2014-03-28 6 views
2
이 코드를 사용하여 내 데이터베이스에 데이터를 삽입하려고

하지만 i'am 예외가 점점 :이 (J2ME) 해결 방법 : javax.microedition.io.ConnectionNotFoundException : 오류 0 소켓 :: 열기를

import java.io.DataInputStream; 
import java.io.IOException; 
import java.io.OutputStream; 

import javax.microedition.io.Connector; 
import javax.microedition.io.HttpConnection; 
import javax.microedition.midlet.MIDlet; 
import javax.microedition.midlet.MIDletStateChangeException; 
import com.sun.lwuit.*; 
import com.sun.lwuit.events.ActionEvent; 
import com.sun.lwuit.events.ActionListener; 


public class MyMidlet extends MIDlet implements Runnable { 

    Form f; 
    TextField t1 ; 
    Label label1 ; 
    Button b1; 


    TextField tfNom ; 
    TextField tfPrenom ; 


    //Connexion 
    HttpConnection hc; 
    DataInputStream dis; 
    String url ; 
    StringBuffer sb ; 
    int ch; 



    public MyMidlet() { 
     Display.init(this); 
    } 

    protected void destroyApp(boolean arg0) throws MIDletStateChangeException { 
     // TODO Auto-generated method stub 

    } 

    protected void pauseApp() { 
     // TODO Auto-generated method stub 

    } 

    protected void startApp() throws MIDletStateChangeException { 

     f = new Form("Test"); 




     tfNom = new TextField("nom : "); 
     tfPrenom = new TextField("prenom :"); 

     b1=new Button("ok"); 


     f.addComponent(tfNom); // append 
     f.addComponent(tfPrenom); 
     f.addComponent(b1); 


     b1.addActionListener(new ActionListener() { 

      public void actionPerformed(ActionEvent arg0) { 
       System.out.println("gooooo"); 

       url= "http://localhost/J2ME/ajout.php"; 
       sb = new StringBuffer(); 


       //**************************** 


       try { 
        hc = (HttpConnection) Connector.open(url+"?nom="+tfNom.getText()+"&prenom="+tfPrenom.getText()); 
        dis = new DataInputStream(hc.openDataInputStream()); 
        while ((ch = dis.read()) != -1) {      
         sb.append((char)ch); 

        } 
        // trim tna77i les espaces 
        if ("successfully added".equalsIgnoreCase(sb.toString().trim())) { 


        System.out.println("succes (added)"); 


        }else{ 


        System.out.println("Error While Adding Data"); 

        } 
       } catch (IOException ex) { 
        ex.printStackTrace(); 
       } 


       //***********************    


      System.out.println("I am Ouuuut"); 


      } 
     }); 

     f.show(); 

    } 

    public void run() { 

} 
} 

-> 작동하지 않고 예외가 발생했습니다 : 처음으로 NOKIA DevEnv를 사용합니다. 그것은 정상 Netbeans J2ME에서 그것을 사용할 때 일하는 것이 었습니다. 아무도 도와 줄 수 있습니까?

gooooo 
javax.microedition.io.ConnectionNotFoundException: error 0 in socket::open 
- com.sun.midp.io.j2me.socket.Protocol.open0(), bci=0 
- com.sun.midp.io.j2me.socket.Protocol.connect(), bci=143 
- com.sun.midp.io.j2me.socket.Protocol.open(), bci=122 
- com.sun.midp.io.j2me.socket.Protocol.openPrim(), bci=4 
- com.sun.midp.io.j2me.http.Protocol.createConnection(), bci=13 
- com.sun.midp.io.j2me.http.Protocol.connect(), bci=138 
- com.sun.midp.io.j2me.http.Protocol.streamConnect(), bci=53 
- com.sun.midp.io.j2me.http.Protocol.startRequest(), bci=7 
- com.sun.midp.io.j2me.http.Protocol.sendRequest(), bci=33 
- com.sun.midp.io.j2me.http.Protocol.sendRequest(), bci=3 
- com.sun.midp.io.j2me.http.Protocol.openInputStream(), bci=6 
- com.sun.midp.io.ConnectionBaseAdapter.openDataInputStream(), bci=5 
- esprit.MyMidlet$1.actionPerformed(MyMidlet.java:89) 
- com.sun.lwuit.util.EventDispatcher.fireActionSync(EventDispatcher.java:312) 
- com.sun.lwuit.util.EventDispatcher.fireActionEvent(EventDispatcher.java:257) 
- com.sun.lwuit.Button.fireActionEvent(Button.java:369) 
- com.sun.lwuit.Button.released(Button.java:400) 
- com.sun.lwuit.Button.pointerReleased(Button.java:476) 
- com.sun.lwuit.Form.pointerReleased(Form.java:2059) 
- com.sun.lwuit.Component.pointerReleased(Component.java:2065) 
- com.sun.lwuit.Display.handleEvent(Display.java:1643) 
- com.sun.lwuit.Display.edtLoopImpl(Display.java:894) 
- com.sun.lwuit.Display.mainEDTLoop(Display.java:839) 
- com.sun.lwuit.RunnableWrapper.run(RunnableWrapper.java:119) 
- java.lang.Thread.run(), bci=5 
I am Ouuuut 

답변

0

응용 프로그램이 인터넷에 연결할 수 없거나 가능한 경우 제공되는 링크를 사용하여 웹 서비스에 연결하지 못합니다. 웹 브라우저에 요청 URL을 입력하고 도달 가능한지 확인하십시오. 특정 포트 (예 : http://mylink.com:8085/my-web-service/)를 통해 웹 서비스에 연결하는 경우 특정 포트가 차단되어 있지 않은지 확인하십시오.

0

Chris Mwai가 맞습니다. 제공된 코드가 서버 "http://localhost/J2ME/ajout.php"에서 작동하려고하지만 분명히 존재하지 않습니다. 아마도 Netbeans 프로젝트에는 localhost (사용자 PC) 및 에뮬레이터에서 연결된 J2ME 클라이언트에 배포 된 서버 측 코드도 포함되었을 것입니다.

어떻게 든 서버 부분을 시작해야합니다 (프로젝트에 따라 다름). 실제 환경 (에뮬레이터가 아님)에서는 서버 부분을 인터넷의 어딘가에 배포하고 전화에서 실행되는 응용 프로그램에서 서버 부분에 연결해야합니다. 따라서 해당 서버로 URL을 변경해야합니다. 'localhost'는 로컬 서버 (PC)를 의미합니다.