【问题标题】:How to Solve this (J2ME) : javax.microedition.io.ConnectionNotFoundException: error 0 in socket::open如何解决这个问题(J2ME):javax.microedition.io.ConnectionNotFoundException:socket::open 中的错误 0
【发布时间】:2014-05-08 14:29:33
【问题描述】:

我正在尝试使用此代码在我的数据库中插入数据,但我遇到了一个异常:

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() {

}
}

--> 它不起作用,我得到了这个异常: 我是第一次使用诺基亚 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

【问题讨论】:

    标签: java-me database-connection httpconnection


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      Chris Mwai 是对的 - 提供的代码尝试与“http://localhost/J2ME/ajout.php”的服务器一起使用,但显然它不存在。可能 Netbeans 项目也包含服务器端代码,它部署在 localhost(用户 PC)和从模拟器连接到它的 J2ME 客户端。

      您需要以某种方式启动服务器部分(它特定于您的项目)。在真实环境(不是模拟器)中,您需要将服务器部分部署在互联网的某个地方,并从手机上运行的应用程序连接到它。因此,您需要将 url 更改为该服务器。 'localhost' 表示本地服务器(您的 PC)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-22
        • 2013-11-23
        • 2021-07-01
        • 1970-01-01
        • 2021-09-15
        • 2021-04-02
        相关资源
        最近更新 更多