org.xmlpull.v1.XmlPullParserException:意外类型(位置:END_DOCUMENT null @ 1:0 in java.io.InputStreamReader@c599f9fd)

时间:2011-08-02 10:21:38

标签: web-services blackberry soap

我是blackberry的新手,我只是想调用一个在SAP CRM上执行某些操作的Web服务,但是我得到了这个例外: org.xmlpull.v1.XmlPullParserException:意外类型(位置:END_DOCUMENT null @ 1:0 in java.io.InputStreamReader@c599f9fd)

这是代码......

   SoapObject rpc = new SoapObject(serviceNamespace,"zws_incoming_email");

   rpc.addProperty("username","sreenu");

   rpc.addProperty("Password","ravi");

   SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
   envelope.bodyOut = rpc;

   envelope.dotNet = true;
   envelope.encodingStyle = SoapSerializationEnvelope.ENC;
   envelope.env = "http://schemas.xmlsoap.org/soap/envelope/";
   HttpTransport ht = new HttpTransport(serviceUrl);
 //s  ht.requestDump=msg;
   ht.debug = true;
   String request="";
   ht.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"  ); 
   String response=ht.responseDump;
        try
            {  
            System.out.print("2222222");
            ht.call(soapAction,envelope);
            String result = (envelope.getResponse()).toString();
            System.out.println("in try block"+result);
            System.out.println("Request"+request);
            System.out.println("Response"+response);
            System.out.println("Result......"+result);  
             }        
        catch(org.xmlpull.v1.XmlPullParserException ex2){
            String msg2 = ex2.toString();
              request=ht.requestDump;
               response=ht.responseDump;
             System.out.println("Exception...... "+msg2);
              System.out.println("request...... "+request);
              System.out.println("response...... "+response);
                 }

          catch(Exception ex)
           {
        String msg1 = ex.toString();
           System.out.println(".......... catch block"+msg1);
          }     
}

在ht.call()方法之后出现异常,请帮助我..............

2 个答案:

答案 0 :(得分:0)

我遇到同样的问题,收到END_DOCUMENT错误,但我解决了。

主要问题在于模拟器中的代理设置。

当我尝试从Blackberry模拟器访问Web服务时,无论我做了什么,我都会一直收到此错误。经过2天的“研究”,我解决了这个问题。执行以下操作:

  1. 确保您预先验证了KSOAP2 jar。如果不执行以下步骤:http://www.craigagreen.com/index.php?/Blog/blackberry-and-net-webservice-tutorial-part-1.html
  2. 确保已安装MDS。如果没有,请转到https://swdownloads.blackberry.com/Downloads/entry.do?code=996009F2374006606F4C0B0FDA878AF1下载并安装Blackberry Email和MDS Services Simulator Package。
  3. 转到C:\Program Files (x86)\Research In Motion\BlackBerry Email and MDS Services Simulators 4.1.2\MDS\config(安装步骤2的包)。打开rimpublic.property文件。在[HTTP HANDLER]下添加以下行:

    application.handler.http.proxyEnabled = true
    application.handler.http.proxyHost=YOUR_PROXY_IP
    application.handler.http.proxyPort=PROXY_PORT
    application.handler.http.proxyUser=PROXY_USER (with domain if required)
    application.handler.http.proxyPass=PASSWORD
    application.handler.http.proxyAutoConfig = false`
    
  4. 现在非常重要且有趣的一步。我在Eclipse中有用户的第一个Blackberry模拟器没有采用代理设置。我并不打算输入代理设置。所以我在模拟器中没有互联网接入(这是主要问题)。然后我尝试安装其他模拟器。 (在我的案例中,Blackberry Pearl 9100版本5.0.0.884您可以在此处下载:http://us.blackberry.com/developers/resources/simulators.jsp)。当我尝试通过网络浏览器连接到互联网时,系统提示我输入用户名,域名和密码。繁荣,我有互联网连接。问题解决了。我的应用程序工作正常。

答案 1 :(得分:-1)

我有同样的问题,我可以通过再次下载KSOAP库来解决它

  

ksoap2-机器人组装-3.0.0-RC.4-罐与 - 依赖

发现于https://code.google.com/p/ksoap2-android/

似乎他们在以前的版本中遇到了问题。我希望它可以帮助人们解决同样的问题。