12-14 16:17:35.926: WARN/System.err(3483): java.net.SocketException: The operation timed out
12-14 16:17:35.926: WARN/System.err(3483):     at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl(Native Method)
12-14 16:17:35.926: WARN/System.err(3483):     at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocket(OSNetworkSystem.java:130)
12-14 16:17:35.926: WARN/System.err(3483):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:246)
12-14 16:17:35.926: WARN/System.err(3483):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:533)
12-14 16:17:35.936: WARN/System.err(3483):     at java.net.Socket.connect(Socket.java:1055)
12-14 16:17:35.936: WARN/System.err(3483):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62)
12-14 16:17:35.936: WARN/System.err(3483):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88)
12-14 16:17:35.936: WARN/System.err(3483):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTPConnection(HttpURLConnectionImpl.java:927)
12-14 16:17:35.936: WARN/System.err(3483):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:909)
12-14 16:17:35.946: WARN/System.err(3483):     at org.ksoap2.transport.ServiceConnectionSE.connect(ServiceConnectionSE.java:76)
12-14 16:17:35.946: WARN/System.err(3483):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:146)
12-14 16:17:35.946: WARN/System.err(3483):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)
12-14 16:17:35.956: WARN/System.err(3483):     at com.menten.until.ServerHelper.Call(ServerHelper.java:31)
12-14 16:17:35.956: WARN/System.err(3483):     at com.menten.until.mainSevice.doTask(mainSevice.java:139)
12-14 16:17:35.956: WARN/System.err(3483):     at com.meten.ui.Login$2.onClick(Login.java:85)
12-14 16:17:35.956: WARN/System.err(3483):     at android.view.View.performClick(View.java:2408)
12-14 16:17:35.956: WARN/System.err(3483):     at android.view.View$PerformClick.run(View.java:8816)
12-14 16:17:35.956: WARN/System.err(3483):     at android.os.Handler.handleCallback(Handler.java:587)
12-14 16:17:35.956: WARN/System.err(3483):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-14 16:17:35.966: WARN/System.err(3483):     at android.os.Looper.loop(Looper.java:123)
12-14 16:17:35.966: WARN/System.err(3483):     at android.app.ActivityThread.main(ActivityThread.java:4669)
12-14 16:17:35.966: WARN/System.err(3483):     at java.lang.reflect.Method.invokeNative(Native Method)
12-14 16:17:35.966: WARN/System.err(3483):     at java.lang.reflect.Method.invoke(Method.java:521)
12-14 16:17:35.976: WARN/System.err(3483):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
12-14 16:17:35.976: WARN/System.err(3483):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
12-14 16:17:35.976: WARN/System.err(3483):     at dalvik.system.NativeStart.main(Native Method)

解决方案 »

  1.   

    java.net.SocketException: The operation timed out 超时异常,是不是服务器不在公网。
      

  2.   

    好像不是这个问题,我用手机浏览器可以打开我要连接的url
      

  3.   

    昨天才做的实验。好像真机使用kosap库是有点问题。
      

  4.   

    不是吧。。千千万万的用ksoap包的总有成功的吧,那项目不是要挂。汗难道要改josn解析?我晕,服务端都写好了,模拟机测试没问题,卡在这。
      

  5.   

    不会是用真机GPRS访问局域网吧。
    ksoap包是没有问题的。
      

  6.   

    的确是GPRS访问的,但不是局域网啊
      

  7.   

    我用浏览器可以访问到我要连接的那个Url啊
      

  8.   


    方便的话,把webservice的网址,命名空间,调用的方法和参数发来,我测试下
      

  9.   

    也是,我最近做得项目也是用KSOAP和WEBSERVICE通信。
    以前一直都是在模拟器测试(兼容多个分辨率)。看到你的帖子,我心里一虚,在真机上用GPRS测了一下,还好可以连上。
    看下是不是接入点问题我用的是:cmnet。
    在把连接时间该长:30秒。
      

  10.   

    多谢,你看看你用cmwap能行么我是用这个,毕竟用户是随意用哪个的。我得确保都不会错,我用的是2.5.7的包 超时设置是HttpTransportSE ht = new HttpTransportSE(serviceURL,30000);
      

  11.   

    我试了下,改成cmnet连接还是一样的错误。。
      

  12.   

    你是用的哪个版本的ksoap包?
      

  13.   

    ksoap2-android-assembly-2.4-jar-with-dependencies.jar
      

  14.   

    那你是自己写的超时方法吧。ksoap2-android-assembly-2.5.7-jar-with-dependencies的包有参数HttpTransportSE ht = new HttpTransportSE(serviceURL,30000);设置超时的好像不太好用,能看看你自己写的那超时方法么。。谢谢。。
      

  15.   

    我的模拟器上不成功 求解
    代码如下package com.glServiceTest;import org.ksoap2.SoapEnvelope;
    import org.ksoap2.serialization.SoapObject;
    import org.ksoap2.serialization.SoapSerializationEnvelope;
    import org.ksoap2.transport.HttpTransportSE;import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;public class GlServiceTestActivity extends Activity implements OnClickListener 
    { /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Button button=(Button)findViewById(R.id.btn);
            button.setOnClickListener(this);
        } public void onClick(View v) 
    {
    // TODO Auto-generated method stub
    EditText etBook=(EditText)findViewById(R.id.etBookName);
    TextView tvResult=(TextView)findViewById(R.id.tvResult);
    //private static final String NAMESPACE = "http:/ /WebXml.com.cn/";
    //WSDL文档的URL,10.0.2.2为android平台对本地PC的localhost的别名
    //String serviceUrl="http://10.168.13.251:8080/axis2/services/glService?wsdl";
    //String serviceUrl="http://10.0.2.2:8080/axis2/services/glService?wsdl";
    //BookService是.arr文件名字
    String serviceUrl="http://10.0.2.2:8080/axis2/services/glService?wsdl";
    //定义调用web服务的方法名称
    String methodName="getBook";
    //创建SoapObject对象
    SoapObject request=new SoapObject("http://service",methodName);
    request.addProperty("bookName",etBook.getText().toString());
    System.out.println("-----------------------1");
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    System.out.println("-----------------------2");
    envelope.bodyOut=request;
    HttpTransportSE ht = new HttpTransportSE(serviceUrl);
    try {
    ht.call(null, envelope);
    if (envelope.getResponse()!=null) 
    {
    SoapObject soapObject=(SoapObject)envelope.getResponse();
    System.out.println("-----------------------3");
    String result="书名:"+soapObject.getProperty("name")+"\n";
    result+="作者:"+soapObject.getProperty("editor")+"\n";
    result+="价格:"+soapObject.getProperty("price");
    // 将WebService返回的结果显示在TextView中  
    tvResult.setText(result);
    System.out.println("-----------------------4");
    }
    else 
    {
    tvResult.setText("没有这本书.");
    System.out.println("-----------------------5");
    }

    } catch (Exception e) {
    e.printStackTrace();
    // TODO: handle exception
    System.out.println("-----------------------6");
    }

    }
    }