意外类型(java.io中的位置:text--uuid:dcd5cdf3..@3:13)。StreamReader@a0190eaa)

意外类型(java.io中的位置:text--uuid:dcd5cdf3..@3:13)。StreamReader@a0190eaa),java,blackberry,blackberry-simulator,Java,Blackberry,Blackberry Simulator,我是黑莓的新手&使用ksoap方法调用WCF服务。 当我调用服务时,它会在模拟器上发出错误消息。 错误是: 意外类型(java.io中的位置:text--uuid:dcd5cdf3..@3:13)。StreamReader@a0190eaa) 此服务已成功调用.net 我的代码: String serviceUrl = "<service url>"; String serviceNameSpace ="<service namespaces&

我是黑莓的新手&使用ksoap方法调用WCF服务。 当我调用服务时,它会在模拟器上发出错误消息。 错误是:

意外类型(java.io中的位置:text--uuid:dcd5cdf3..@3:13)。StreamReader@a0190eaa)

此服务已成功调用.net

我的代码:

        String serviceUrl = "<service url>"; 
        String serviceNameSpace ="<service namespaces>";
        String soapAction = "<service soapaction>";
        String methodName = "logOn";

    SoapObject rpc = new SoapObject(serviceNameSpace, methodName);
    //String a="52";
    //String b="28";

    rpc.addProperty("username", String.valueOf(edUserName.getText()));
    rpc.addProperty("password",String.valueOf(edPaswd.getText()));
   // rpc.addProperty("a","nil");
    SoapSerializationEnvelope envelope = new  SoapSerializationEnvelope(SoapEnvelope.VER11);

    envelope.bodyOut = rpc;
    envelope.dotNet = true;          //IF you are accessing .net based web service  this should be true
    envelope.encodingStyle = SoapSerializationEnvelope.XSD;
    //HttpTransport  ht = new HttpTransport(serviceUrl);
    HttpTransport ht = new HttpTransport(serviceUrl + "; deviceside=true; apn=blackberry.net");


    ht.debug = true;
    //SoapObject result=null;
    //ht.setXmlVersionTag("");

    try
    {
            ht.call(soapAction, envelope);
            String result = (envelope.getResponse()).toString();
            Dialog.alert(result);

            Dialog.alert("login success");
    }
    catch(Exception ex2)
    {
        Dialog.alert("error is :"+ex2.getMessage());
    }


//          if((edUserName.getText().equals("")))
//          {
//              Dialog.alert("Enter User Name ");
//          }
//          if(edPaswd.getText().equals(""))
//          {
//              Dialog.alert("Enter Password");
//              
//          } 
String serviceUrl=”“;
字符串serviceNameSpace=“”;
字符串soapAction=“”;
String methodName=“登录”;
SoapObject rpc=新的SoapObject(serviceNameSpace,methodName);
//字符串a=“52”;
//字符串b=“28”;
addProperty(“username”,String.valueOf(edUserName.getText());
addProperty(“password”,String.valueOf(edPaswd.getText());
//rpc.addProperty(“a”、“无”);
SoapSerializationEnvelope=新的SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut=rpc;
envelope.dotNet=true//如果您正在访问基于.net的web服务,则应该是这样
envelope.encodingStyle=SoapSerializationEnvelope.XSD;
//HttpTransport ht=新的HttpTransport(serviceUrl);
HttpTransport ht=新的HttpTransport(serviceUrl+“deviceside=true;apn=blackberry.net”);
ht.debug=true;
//SoapObject结果=null;
//ht.setXmlVersionTag(“”);
尝试
{
ht.呼叫(soapAction,信封);
字符串结果=(envelope.getResponse()).toString();
对话框。警报(结果);
Dialog.alert(“登录成功”);
}
捕获(异常ex2)
{
警报(“错误为:+ex2.getMessage());
}
//if((edUserName.getText()等于(“”))
//          {
//对话框。警报(“输入用户名”);
//          }
//if(edPaswd.getText().equals(“”)
//          {
//对话框。警报(“输入密码”);
//              
//          } 

StreamReader出错意味着它有一些来自HttpTransport的坏数据。尝试执行中建议的操作,尤其是因为它还处理.NET Web服务。

请告诉我代码中的实际问题以及需要进行哪些更改?我不确定您需要在哪里更改代码。我链接到的帖子指出,唯一影响BB代码的是服务URL指向
http://localhost...
而不是
http://hostname...
。其他一切都是为了检查您的Web服务是否正常工作。在该论坛的更深处,似乎正在使用的库无法解析HTTP错误消息。看起来您的代码无法用“uuid:dcd5cdf3…”解析此字符串。您确定您的Web服务正在发回有效的SOAP/XML吗?我已将URL从本地主机更改为主机名,但它给出了相同的错误。程序中还需要任何其他更改吗?我确信我的Web服务正在发回有效数据,因为我已成功地从.net调用了此Web服务。我正在向Web服务发送相同的数据。问题发生在哪里?我已经使用了ksoap2-j2me-core-prev-2.1.2.jar文件。对吗?如果错误,请给我一个正确的lib文件。提前谢谢!!!!!!!!