2012-03-08 61 views
0

我正尝试从我的Android中调用我在Google Apple Engine中创建的Web服务。在测试时,我得到了这个错误。
org.xmlpull.v1.XmlPullParserException:期望值START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope(位置:START_TAG @ 1:7中[email protected]
请帮忙。Web服务 - org.xmlpull.v1.XmlPullParserException:

以下是我的代码。

private static final String SOAP_ACTION = "http://example.com/sayHello"; 
    private static final String OPERATION_NAME = "sayHello"; 
    private static final String WSDL_TARGET_NAMESPACE = "http://example.com/"; 
    private static final String SOAP_ADDRESS = "http://mynewcloudcom.appspot.com/hellosoapserver"; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     TextView textView = new TextView(this); 
     SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, 
       OPERATION_NAME); 
     request.addProperty("arg0","ONE"); 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
       SoapEnvelope.VER11); 
     envelope.dotNet = false; 
     envelope.setOutputSoapObject(request); 
     HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); 
     httpTransport.debug = true; 
     try { 
      httpTransport.call(SOAP_ACTION, envelope); 
      Log.v("TEST", httpTransport.requestDump); 
      Log.v("TEST", httpTransport.responseDump); 
      Object response = envelope.getResponse();  
      textView.setText(response.toString()); 
     } catch (Exception exception) { 
      textView.setText(exception.toString()); 
     } 

我甚至尝试将soap_address更改为WSDL文件,但仍然是相同的错误。

private static final String SOAP_ADDRESS = "http://mynewcloudcom.appspot.com/GreeterService.wsdl"; 

WSDL文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<definitions targetNamespace="http://example.com/" name="GreeterService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://example.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <types> 
    <xsd:schema> 
     <xsd:import namespace="http://example.com/" schemaLocation="GreeterService_schema1.xsd"/> 
    </xsd:schema> 
    </types> 
    <message name="sayHello"> 
    <part name="parameters" element="tns:sayHello"/> 
    </message> 
    <message name="sayHelloResponse"> 
    <part name="parameters" element="tns:sayHelloResponse"/> 
    </message> 
    <message name="sayGoodbye"> 
    <part name="parameters" element="tns:sayGoodbye"/> 
    </message> 
    <message name="sayGoodbyeResponse"> 
    <part name="parameters" element="tns:sayGoodbyeResponse"/> 
    </message> 
    <portType name="Greeter"> 
    <operation name="sayHello"> 
     <input wsam:Action="http://example.com/Greeter/sayHelloRequest" message="tns:sayHello"/> 
     <output wsam:Action="http://example.com/Greeter/sayHelloResponse" message="tns:sayHelloResponse"/> 
    </operation> 
    <operation name="sayGoodbye"> 
     <input wsam:Action="http://example.com/Greeter/sayGoodbyeRequest" message="tns:sayGoodbye"/> 
     <output wsam:Action="http://example.com/Greeter/sayGoodbyeResponse" message="tns:sayGoodbyeResponse"/> 
    </operation> 
    </portType> 
    <binding name="GreeterPortBinding" type="tns:Greeter"> 
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> 
    <operation name="sayHello"> 
     <soap:operation soapAction=""/> 
     <input> 
     <soap:body use="literal"/> 
     </input> 
     <output> 
     <soap:body use="literal"/> 
     </output> 
    </operation> 
    <operation name="sayGoodbye"> 
     <soap:operation soapAction=""/> 
     <input> 
     <soap:body use="literal"/> 
     </input> 
     <output> 
     <soap:body use="literal"/> 
     </output> 
    </operation> 
    </binding> 
    <service name="GreeterService"> 
    <port name="GreeterPort" binding="tns:GreeterPortBinding"> 
     <soap:address location="http://mynewcloudcom.appspot.com/hellosoapserver"/> 
    </port> 
    </service> 
</definitions> 

XSD文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<xs:schema version="1.0" targetNamespace="http://example.com/" xmlns:tns="http://example.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="sayGoodbye" type="tns:sayGoodbye"/> 
    <xs:element name="sayGoodbyeResponse" type="tns:sayGoodbyeResponse"/> 
    <xs:element name="sayHello" type="tns:sayHello"/> 
    <xs:element name="sayHelloResponse" type="tns:sayHelloResponse"/> 
    <xs:complexType name="sayHello"> 
    <xs:sequence> 
     <xs:element name="arg0" type="xs:string" minOccurs="0"/> 
    </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="sayHelloResponse"> 
    <xs:sequence> 
     <xs:element name="return" type="xs:string" minOccurs="0"/> 
    </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="sayGoodbye"> 
    <xs:sequence> 
     <xs:element name="arg0" type="xs:string" minOccurs="0"/> 
    </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="sayGoodbyeResponse"> 
    <xs:sequence> 
     <xs:element name="return" type="xs:string" minOccurs="0"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:schema> 
+0

它表示XML无效。请向我们展示XML .. – 2012-03-08 08:42:32

+0

添加了我的wsdl和xsd文件。 – 2012-03-08 08:45:59

+0

您可以发布xml本身,即您获得的肥皂信封作为回应。 – 2012-03-08 09:37:45

回答

0

感谢您的帮助球员。现在问题解决了。它是一个JDK问题。我使用jdk 1.6重新创建项目并部署到GAE。现在工作正常。再次感谢。什么是救济..Phe ...

相关问题