当前位置:编程学习 > wap >>

100分求助,android调用webservice异常org.xmlpull.v1.XmlPullParserException

webservice地址:http://172.16.1.10/oa/services/UserWebService?wsdl

webservice内容:

  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions targetNamespace="http://webservice.service.oa.org" xmlns:ns1="http://pojos.oa.org" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://webservice.service.oa.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
- <wsdl:types>
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://webservice.service.oa.org">
- <xsd:element name="doLogin">
- <xsd:complexType>
- <xsd:sequence>
  <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string" /> 
  <xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string" /> 
  <xsd:element maxOccurs="1" minOccurs="1" name="in2" nillable="true" type="xsd:string" /> 
  </xsd:sequence>
  </xsd:complexType>
  </xsd:element>



android 调用该webservice方法

         static final String SERVICE_NS = "http://webservice.service.oa.org";
// 定义Web Service提供服务的URL
static final String SERVICE_URL = "http://172.16.1.10/oa/services/UserWebService?wsdl";

// 调用Web Service登录
public static void doLogin(String username,String password)
{
//调用的方法名称
String methodName = "doLogin";

// 创建HttpTransportSE传输对象
HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);

ht.debug = true;

// 使用SOAP1.1协议创建Envelop对象,SoapEnvelope.VER11,VER10,VER12//都不行
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

// 实例化SoapObject对象
SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);
// 添加请求参数
soapObject.addProperty("in0 ",username);

soapObject.addProperty("in1", password);

envelope.bodyOut = soapObject;

// 设置与.Net提供的Web Service保持较好的兼容性,该webservice是java编写
envelope.dotNet = false;
envelope.setOutputSoapObject(soapObject);//设置请求参数

try
{
// 调用Web Service
ht.call(SERVICE_NS + methodName, envelope);
if (envelope.getResponse() != null)
{
// 获取服务器响应返回的SOAP消息
SoapObjectresult = (SoapObject) envelope.bodyIn;
SoapObject detail = (SoapObject) result.getProperty(methodName
+ "Result");
// 解析服务器响应的SOAP消息。
System.out.println("----------------------detail"+result);
}
}
catch (IOException e)
{ Log.e("IO", "IO异常");
e.printStackTrace();
}
catch (XmlPullParserException e)
{
Log.e("XmlPullParserException", "XmlPullParserException异常");
e.printStackTrace();
}



AndroidManifest.xml
<权限已加入>
<uses-permission android:name="android.permission.INTERNET" />

调用时报错
org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <{http://schemas.xmlsoap.org/wsdl/}wsdl:definitions targetNamespace='http://webservice.service.oa.org'>@2:523 in java.io.InputStreamReader@4056be18) 

求大神帮帮忙~~多谢 --------------------编程问答--------------------
--------------------编程问答-------------------- 你这个是语法错 就是xml文件本身的问题,你把这个文件复制到android本地的一个项目的assets文件里 文件里显示几个错误;我已经把你文件里没行的“-”去掉了还是这样 ,你的好几个节点都没有结尾;不符合xml文件的格式

你按照我的方法做以下就知道我说的什么意思了
--------------------编程问答-------------------- 这是xml源文件 


<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://webservice.service.oa.org" xmlns:ns1="http://pojos.oa.org" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://webservice.service.oa.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://webservice.service.oa.org">
<xsd:element name="doLogin">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="in2" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="doLoginResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="ns1:User"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="submitPassword">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" type="xsd:long"/>
<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="submitPasswordResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://pojos.oa.org">
<xsd:complexType name="User">
<xsd:sequence>
<xsd:element minOccurs="0" name="FCellphone" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FDeptcode" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FDeptid" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FDeptname" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FIpAddress" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FLogin" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FMail" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FName" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FNote" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FOragnation" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FOrder" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FPassword" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FSecretary" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FSecretaryid" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FSmsset" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FState" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FUsertype" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="lastonlinetime" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="lastonlinetimeold" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="lock" type="xsd:int"/>
<xsd:element minOccurs="0" name="popupUserDefs" nillable="true" type="ns1:ArrayOfPopupUserDef"/>
<xsd:element minOccurs="0" name="rolename" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfPopupUserDef">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="PopupUserDef" nillable="true" type="ns1:PopupUserDef"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PopupUserDef">
<xsd:sequence>
<xsd:element minOccurs="0" name="FAllowIntegrate" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FAllowMutiPopup" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FAllowpop" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FAllowsound" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FMsecHold" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FMsecInterval" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="FSoundfile" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FTodoSource" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="FUserid" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
  </wsdl:types>
  <wsdl:message name="submitPasswordResponse">
    <wsdl:part name="parameters" element="tns:submitPasswordResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="doLoginRequest">
    <wsdl:part name="parameters" element="tns:doLogin">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="submitPasswordRequest">
    <wsdl:part name="parameters" element="tns:submitPassword">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="doLoginResponse">
    <wsdl:part name="parameters" element="tns:doLoginResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="UserWebServicePortType">
    <wsdl:operation name="doLogin">
      <wsdl:input name="doLoginRequest" message="tns:doLoginRequest">
    </wsdl:input>
      <wsdl:output name="doLoginResponse" message="tns:doLoginResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="submitPassword">
      <wsdl:input name="submitPasswordRequest" message="tns:submitPasswordRequest">
    </wsdl:input>
      <wsdl:output name="submitPasswordResponse" message="tns:submitPasswordResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="UserWebServiceHttpBinding" type="tns:UserWebServicePortType">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="doLogin">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="doLoginRequest">
        <wsdlsoap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="doLoginResponse">
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="submitPassword">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="submitPasswordRequest">
        <wsdlsoap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="submitPasswordResponse">
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="UserWebService">
    <wsdl:port name="UserWebServiceHttpPort" binding="tns:UserWebServiceHttpBinding">
      <wsdlsoap:address location="http://172.16.1.10/oa/services/UserWebService"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

--------------------编程问答-------------------- 看报错信息已经很明显了,你的那个xml标签有点问题 --------------------编程问答-------------------- LS的解释已经很明了 --------------------编程问答-------------------- Url指的是你的webservice的地址.一般都是以***.wsdl或者***.?wsdl结束的...但是.需要注意的是..要去掉后面的.wsdl或者.?wsdl
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,