как решить org.xmlpull.v1.XmlPullParserException: непредвиденный тип (позиция: END_DOCUMENT null @ 1: 1 в java.io.InputStreamReader@40d310f0)
Я создал простой веб-сервис, используя jax-ws. Мне нужно использовать этот веб-сервис в Android. когда я использую этот веб-сервис, я получил эту ошибкуorg.xmlpull.v1.XmlPullParserException: unexpected type (position:END_DOCUMENT null@1:1 in java.io.InputStreamReader@40d310f0)
мой код wsdl:
Моя активность:
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());
}
}
});
}}
Мой клиент.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;
}
}
}
когда я использую @BindingType - это soap1.1 в моем веб-сервисе jax-ws, я получаю правильный ответ. но когда я использую @BindingType - это soap1.2 в моем веб-сервисе jax-ws, я получаю эту ошибкуorg.xmlpull.v1.XmlPullParserException: непредвиденный тип (позиция: END_DOCUMENT null @ 1: 1 в java.io.InputStreamReader@40d310f0).
Как можно решить эту проблему?