Question

J'ai essayé d'utiliser le code suivant pour accéder à un service Web via HTTPS à l'aide d'Apache CXF. Mais chaque fois que mon message est envoyé, je ne reçois rien tant que mon code n'est pas expiré. Quelqu'un peut-il donner mon code une fois pour toutes et me faire savoir si je fais quelque chose de mal. J'ai essayé d'accéder au service via SoapUI et c'est bien, il doit donc y avoir quelque chose dans mon code CXF, mais je ne sais pas quoi!

Merci pour toute aide

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);
Était-ce utile?

La solution

Quel est le temps de réponse de SoapUI?

Avez-vous passé cela sur un moniteur pour voir qu'il envoie au bon endroit?

Mon code CXF ressemble à ceci:

      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   

      }

Ce service prend environ 90 secondes à retourner et fonctionne correctement

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top