2009-04-30 4 views
0

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

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

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

ответ

0

Что такое время отклика от 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 

     } 

Эта служба занимает около 90secs, чтобы вернуться и работает нормально

+0

Время отклика почти мгновенно. Хорошая идея по инструменту мониторинга - я посмотрю, что это говорит. –

Смежные вопросы