Веб-служба - org.xmlpull.v1.XmlPullParserException: - PullRequest
0 голосов
/ 08 марта 2012

Я пытаюсь вызвать свой веб-сервис, который я создал в Google Apple Engine с моего Android. Во время тестирования я получил эту ошибку.
org.xmlpull.v1.XmlPullParserException: ожидается: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (позиция: START_TAG @ 1: 7 в java.io.InputStreamReader@41825db0)
Пожалуйста, помогите.

Ниже мой код.

    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>

1 Ответ

0 голосов
/ 08 марта 2012

Спасибо за помощь, ребята.Проблема решена сейчас.Это проблема JDK.Я воссоздаю проект с использованием JDK 1.6 и развернуть в GAE.Сейчас работает нормально.Еще раз спасибо.Какое облегчение .. Фуфу ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...