首页 / ANDROID / android-如何解决org.xmlpull.v1.XmlPullParserException:意外类型(位置:java.io.InputStreamReader@40d310f0中的END_DO
android-如何解决org.xmlpull.v1.XmlPullParserException:意外类型(位置:java.io.InputStreamReader@40d310f0中的END_DO
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android-如何解决org.xmlpull.v1.XmlPullParserException:意外类型(位置:java.io.InputStreamReader@40d310f0中的END_DO,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4624字,纯文字阅读大概需要7分钟。
内容图文
![android-如何解决org.xmlpull.v1.XmlPullParserException:意外类型(位置:java.io.InputStreamReader@40d310f0中的END_DO](/upload/InfoBanner/zyjiaocheng/693/fee522e0021e4e48a454a33d266e4479.jpg)
我已经使用jax-ws创建了简单的Web服务.我需要在android中使用该webservice.
当我使用该Web服务时,出现此错误
org.xmlpull.v1.XmlPullParserException:意外类型(位置:END_DOCUMENT null @ 1:1,在java.io.InputStreamReader@40d310f0中)
我的wsdl代码:
<definitions targetNamespace="http://sample.jaxws.ws.blog.accrd.com/" name="SimpleWebServiceService">
<types>
<xsd:schema>
<xsd:import namespace="http://sample.jaxws.ws.blog.accrd.com/" schemaLocation="http://localhost:8080/SimpleWebService/SimpleWebService?xsd=1"/>
</xsd:schema>
</types>
<message name="sayHello"><part name="parameters" element="tns:sayHello"/></message><message name="sayHelloResponse">
<part name="parameters" element="tns:sayHelloResponse"/>
</message>
<portType name="SimpleWebService"><operation name="sayHello">
<input wsam:Action="http://sample.jaxws.ws.blog.accrd.com/SimpleWebService/sayHelloRequest" message="tns:sayHello"/>
<output wsam:Action="http://sample.jaxws.ws.blog.accrd.com/SimpleWebService/sayHelloResponse" message="tns:sayHelloResponse"/>
</operation>
</portType>
<binding name="SimpleWebServicePortBinding" type="tns:SimpleWebService">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><operation name="sayHello">
<soap12:operation soapAction=""/>
<input>
<soap12:body use="literal"/>
</input>
<output>
<soap12:body use="literal"/>
</output>
</operation>
</binding>
<service name="SimpleWebServiceService">
<port name="SimpleWebServicePort" binding="tns:SimpleWebServicePortBinding"><soap12:address location="http://localhost:8080/SimpleWebService/SimpleWebService"/>
</port>
</service>
</definitions>
我的活动:
public class MainActivity extends Activity {
public final static String URL ="http://localhost:8080/SimpleWebService/SimpleWebService?wsdl";
public static final String NAMESPACE = "http://sample.jaxws.ws.blog.accrd.com/";
public static final String SOAP_ACTION = "http://sample.jaxws.ws.blog.accrd.com/sayHello";
private static final String METHOD = "sayHello";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView tv = (TextView) findViewById(R.id.txt1);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SoapObject request = new SoapObject(NAMESPACE, METHOD);
Customer cu = new Customer();
cu.setFirstName("FirstName");
cu.setLastName("LastName");
PropertyInfo propInfo = new PropertyInfo();
propInfo.name = "arg0";
propInfo.type = Customer.class;
request.addProperty(propInfo, cu);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER12);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
Log.d("Error", "Finished");
SoapObject response=(SoapObject)envelope.bodyIn;
tv.setText(response.toString());
} catch (Exception e) {
Log.d("Error", e.toString());
}
}
});
}}
我的Customer.java
public class Customer implements KvmSerializable {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public Object getProperty(int arg0) {
Object object = null;
switch (arg0) {
case 0:
object = this.firstName;
break;
case 1:
object = this.lastName;
break;
}
return object;
}
@Override
public int getPropertyCount() {
// TODO Auto-generated method stub
return 2;
}
@Override
public void getPropertyInfo(int arg0, Hashtable arg1,
PropertyInfo propertyInfo) {
switch (arg0) {
case 0:
propertyInfo.name = "firstName";
propertyInfo.type = PropertyInfo.STRING_CLASS;
break;
case 1:
propertyInfo.name = "lastName";
propertyInfo.type = PropertyInfo.STRING_CLASS;
break;
}
}
@Override
public void setProperty(int arg0, Object object) {
switch (arg0) {
case 0:
this.firstName = object.toString();
break;
case 1:
this.lastName = object.toString();
break;
}
}
}
当我在jax-ws网络服务中使用@BindingType为soap1.1时,我得到正确的响应.但是当我在jax-ws Web服务中使用@BindingType为soap1.2时,出现此错误org.xmlpull.v1.XmlPullParserException:意外类型(位置:java.io.InputStreamReader@40d310f0中的END_DOCUMENT null @ 1:1).
如何解决这个问题?
解决方法:
与@jeevamuthu交谈之后,问题在于他不得不将ksoap库添加到其构建路径中,并对代码进行较小的调整.如果您遇到类似的问题,请联系@jeevamuthu以获取解决此问题的信息.
PropertyInfo propInfo = new PropertyInfo();
propInfo.name = "arg0"; propInfo.value=cu;
propInfo.type = Customer.class;
request.addProperty(propInfo);
内容总结
以上是互联网集市为您收集整理的android-如何解决org.xmlpull.v1.XmlPullParserException:意外类型(位置:java.io.InputStreamReader@40d310f0中的END_DO全部内容,希望文章能够帮你解决android-如何解决org.xmlpull.v1.XmlPullParserException:意外类型(位置:java.io.InputStreamReader@40d310f0中的END_DO所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。