如何解决这个问题(J2ME):javax.microedition.io.ConnectionNotFoundException:socket :: open中的错误0

时间:2014-03-28 22:50:58

标签: java-me database-connection httpconnection

我正在尝试使用此代码在我的数据库中插入数据,但我得到了例外:

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。当我在Normal 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

2 个答案:

答案 0 :(得分:0)

您的应用程序无法连接到互联网,或者如果可以,则无法使用提供的链接连接到您的Web服务。尝试在Web浏览器中输入您的请求的URL,看看它是否可以访问。如果您通过特定端口(例如http://mylink.com:8085/my-web-service/)连接到Web服务,请确保未阻止特定端口。

答案 1 :(得分:0)

Chris Mwai是对的 - 提供的代码试图在" http://localhost/J2ME/ajout.php"显然它并不存在。可能Netbeans项目也包括服务器端代码,它部署在localhost(用户PC)和从仿真器连接到它的J2ME客户端。

您需要以某种方式启动服务器部分(它特定于您的项目)。在真实环境(非模拟器)中,您需要在Internet上的某个位置部署服务器部件,并通过手机上运行的应用程序连接到该部件。因此,您需要将URL更改为该服务器。 '本地主机'表示本地服务器(您的PC)。