Несколько параметров в клиенте веб-службы Axis - PullRequest
0 голосов
/ 26 июля 2011

Я впервые пишу клиент веб-службы, это забавно, я уже написал веб-сервис;)

В любом случае, я использую Axis для вызова WS, используя следующий код

  String endpoint =
            "http://localhost:8080/SpeechServices/SpeechWebService/SpeechWebService";

    Service service = new Service();
    Call call = (Call) service.createCall();
    call.setTargetEndpointAddress(new java.net.URL(endpoint));
    call.setOperationName(new QName("http://ws.ecw.com/", "parseNotes"));
    HashMap ret = (HashMap) call.invoke(new Object[]{"", "", ""});
    System.out.println("Sent 'Hello!', got '" + ret + "'");

My Service возвращает HashMap и имеет три входных параметра apuId, providerId, примечания. Я не уверен, как отправить эти параметры в WS, я уверен, что это всего лишь несколько вызовов методов ex;call.setProperty.Пожалуйста, сообщите

1 Ответ

0 голосов
/ 27 июля 2011

Хорошо, это ответ, он еще не полностью работает, потому что Axis, похоже, не поддерживает hashmap в качестве ответа веб-сервиса.

    String endpoint =
            "http://localhost:8080/eCWServices/StructSpeech/StructSpeech";
    Service service = new Service();
    Call call = (Call) service.createCall();
    call.setTargetEndpointAddress(new java.net.URL(endpoint));
    call.setOperationName(new QName("http://ejb.ecw.com/", "parseNotes"));
    call.addParameter("notes", org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);
    call.addParameter("apuId", org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);
    call.addParameter("providerId", org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);
    call.setReturnType(XMLType.SOAP_MAP);
    HashMap  ret = (HashMap) call.invoke(new Object[]{"","",""});
    System.out.println("Sent 'Hello!', got '" + ret + "'");
...