Вопрос

У меня есть следующий код, который я пытаюсь использовать для доступа к веб-сервису по протоколу HTTPS с использованием Apache CXF.Но всякий раз, когда мое сообщение отправляется, я ничего не получаю в ответ, пока не истечет время ожидания моего кода.Может кто-нибудь еще раз просмотреть мой код и дать мне знать, если я делаю что-то не так.Я пытался получить доступ к сервису через SoapUI, и это нормально, так что это должно быть что-то в моем коде CXF, но я просто не знаю, что!

Спасибо за любую помощь

DepositImplService ss = new DepositImplService(WSDL_LOCATION,
    SERVICE_NAME);
PortType port = ss.getPortTypePort();

Client client = ClientProxy.getClient(port);

HTTPConduit conduit = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = conduit.getClient();
httpClientPolicy.setConnectionTimeout(30000);
httpClientPolicy.setReceiveTimeout(30000);
conduit.setClient(httpClientPolicy);

AuthorizationPolicy authPolicy = new AuthorizationPolicy();
authPolicy.setUserName("foo");
authPolicy.setPassword("bar");
conduit.setAuthorization(authPolicy);

TLSClientParameters parameters = new TLSClientParameters();
parameters.setSecureSocketProtocol("SSL");
conduit.setTlsClientParameters(parameters);

client.getInInterceptors().add(new LoggingInInterceptor());
client.getOutInterceptors().add(new LoggingOutInterceptor());

UploadRequestT doc = new UploadRequestT();
BufferedReader reader = new BufferedReader(new FileReader(new File(
    "C:\\rawmessage.txt")));
String documentStr = "";
String currLine = "";
while ((currLine = reader.readLine()) != null) {
  documentStr += currLine;
}

doc.setDoc(documentStr);
doc.setOwner("43");
port.upload(doc);
Это было полезно?

Решение

Каково время отклика от SoapUI?

Вы прогнали это через монитор , чтобы убедиться, что оно отправляется в нужное место?

Мой код CXF выглядит следующим образом :

      PService phsService = new PService(url, SERVICE_NAME);
      P p = phsService.getPHSPort();
      LOG.info("Calling Web Service : getHs");

      StringArray ar = p.getHs();

      for (String hn: ar.getItem()) {
         LOG.info("Calling : getHName : " + hn);
         Dto nDto = p. getHName (hn);

         // process the result   

      }

Возврат этой службы занимает около 90 секунд и работает нормально

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top