2011-09-15 5 views
2

안드로이드에서 webservice와 ksoap2를 사용하려하고 있는데 웹 서비스에서 응답을받을 수 없다고 생각합니다. 왜이 오류가 발생하는지 아는 사람이 있습니까? "org.xmlpull.v1.XmlPullParserException : 예상 : START_TAG""org.xmlpull.v1.XmlPullParserException : expected : START_TAG"오류

내 코드는 다음과 같습니다

public class ANDROIDsapActivity extends Activity { 
    /** Called when the activity is first created. */ 
    private static final String NAMESPACE = "urn:sap-com:document:sap:soap:functions:mc-style"; 
    private static final String URL = "http://192.168.2.5:8000/sap/bc/srt/wsdl/bndg_E0DFBFD4F407C3F1A6A000155D02060A/wsdl11/allinone/ws_policy/document?sap-client=500";  
    private static final String SOAP_ACTION = "zws_get_customer"; 
    private static final String METHOD_NAME = "ZfGetCustomers"; 
     TextView tv; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     tv = (TextView) findViewById(R.id.textView1); 

     SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME); 
     Request.addProperty("IM_NAME","M"); 

     SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     soapEnvelope.setOutputSoapObject(Request); 

     soapEnvelope.encodingStyle = SoapSerializationEnvelope.ENC2003; 
     soapEnvelope.bodyOut = Request; 
     soapEnvelope.dotNet = true; 
     soapEnvelope.encodingStyle = SoapSerializationEnvelope.XSD; 

     // AndroidHttpTransport aht = new AndroidHttpTransport(URL); 
     HttpTransportSE aht = new HttpTransportSE(URL); 
     aht.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
     List<HeaderProperty> headers = new ArrayList<HeaderProperty>(); 
     headers.add(new HeaderProperty("Authorization", "basic " + 
       Base64.encode("username:password".getBytes()))); 

     try { 
      aht.call(SOAP_ACTION, soapEnvelope,headers); 
      SoapPrimitive resultString = (SoapPrimitive) soapEnvelope.getResponse(); 
      tv.setText("Status: " + resultString); 
     } catch (Exception e) { 
      // TODO: handle exception 
      tv.setText(e.toString()); 
     } 
    } 
} 

내 완전한 오류입니다 :이 오류 난에 붙어

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='urn:sap-com:document:sapsoap:functions:mc-style'> 
@1:630 in [email protected] 

캔트는 더 이상 갈 수 없다. 도와주세요!

수정 : 나는 이것을 풀었다. 의견 및 질문에 대한 아래의 대답을 읽으십시오. 나는 어쩌면 누군가에게 아주 도움이되기를 바랍니다.

+0

SOAP_ACTION을 확인하십시오. 'NAMESPACE + "/"+ METHOD_NAME "이어야한다고 생각하십시오. 이것이 작동하지 않는다면, 제가 더 이상 당신을 도울 것이라고 말해주십시오. –

+0

나는 여전히 같은 오류가 발생합니다. 나는 내 URL doesnt work라고 생각하고있다. 왜냐하면 내 웹 서비스에서는 내 URL이 마음에 들지 않기 때문입니다. 그것의 IP가 아니라 웹 주소. 그게 문제가 될 수 있다고 생각하니? – Mtu

+0

브라우저에서 URL을 실행하면 'WSDL'또는 해당 서비스와 관련된 모든 메시지가 반환되는지 확인하십시오. –

답변

1

웹 서비스 스타일을 변경하여 문제를 해결했습니다. SAP와 android를 통합하려면 SOAP 대신 Restful Webservice 시스템을 사용하십시오.

+0

안녕하세요. mtu iam도 같은 문제를 겪고 있지만 당신이 말하는 것을 이해하지 못했습니다. 내가 안드로이드에서 이것을 직면. 제발 당신이 그것을 분명히 설명해 주시겠습니까 .. – Sando

+1

안녕하세요, SAP 웹 서비스를 안드로이드 응용 프로그램과 통합하려고하면 SOAP이 아닌 안드로이드에서 사용할 수있는 RESTFUL 유형의 웹 서비스를 사용해야한다고 생각합니다. 안드로이드에서 Restful Webservices를 더 자세히 살펴보십시오. – Mtu

관련 문제