2009-04-30 5 views
0

J'ai le code suivant que j'essaie d'utiliser pour accéder à un service web via HTTPS en utilisant Apache CXF. Mais chaque fois que mon message est envoyé, je ne reçois rien jusqu'à ce que mon code arrive à expiration. Quelqu'un peut-il donner mon code une fois et laissez-moi savoir si je fais quelque chose de mal. J'ai essayé d'accéder au service via SoapUI et c'est bien, donc ça doit être quelque chose dans mon code CXF mais je ne sais pas quoi!CXF et SSL: problèmes d'expiration

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); 

Répondre

0

Quel est le temps de réponse de SoapUI?

Avez-vous exécuté ceci à travers un moniteur pour voir qu'il envoie au bon endroit?

Code Mon 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 90secs pour retourner et fonctionne très bien

+0

Le temps de réponse a été presque instantanée. Bonne idée sur l'outil de surveillance - je verrai ce que cela me dit. –

Questions connexes