2016-06-24 8 views
0

Sorry, wenn meine Frage nicht wirklich klar ist, ist es schwierig, mein Problem zu erklären.CXF EndPointImpl Wie setze ich ein Timeout in veröffentlichten Endpunkt

Also verwende ich das CXF-Framework zum ersten Mal. Ich suchte eine Lösung im Internet ohne Erfolg. Lassen Sie uns den Anwendungsfall erklären.

Ich versuche, einen Web-Service (im Server-Modus) zu schreiben, um SOAP-Nachrichten zu empfangen, Verarbeitung und Antwort zu behandeln. Um dies zu tun, verwende ich CXF mit WSDL ersten Ansatz.

Meine Implementierung scheint gut zu funktionieren, ich erhalte SOAP-Nachricht über meine implementierte Klasse mit Annotation "@webservice" .... verarbeiten Sie diese Anfrage und geben Sie eine Antwort zurück. Mein Problem befindet sich auf der Prozessseite, etwas, und abhängig von der SOAP-Nachricht kann es sehr lang sein und in diesem Fall behandelt CXF eine Zeitüberschreitung. So würde Ich mag das „Timeout“ konfigurieren, die mir erlauben, diese lange Bearbeitungs

EndpointImpl jaxWsEndpoint = (EndpointImpl) Endpoint.publish(endPointAddress, httpWebService); 

das Objekt httpWebService stellt die „Rückruf“ Klasse zu machen.

Antwort

0

Sie können ReceiveTimeout auf Konfigurationsebene verwenden, um die Zeitdauer in Millisekunden festzulegen, die Ihr Dienst versucht, eine Anforderung zu empfangen, bevor die Verbindung abbricht. Set 0 für kein Timeout

<http-conf:destination name="{http://apache.org/hello_world_soap_http}SoapPort.http-destination"> 
     <http-conf:server ReceiveTimeout="0" /> 
    </http-conf:destination> 

Nehmen Sie in Rechnung, dass die Verbindung Timeout-Parameter können auch in Ihnen Anwendungsserverkonfiguration

+0

Vielen Dank, ich werde versuchen, so schnell wie möglich – BrK

+0

Hallo @BrK, haben Sie es überprüft? – pedrofb

0

eingestellt werden Wenn Sie die official way nicht folgen wollen (abhängig von Frühling), können Sie versuchen Sie das:

+0

Sory für die Verzögerung, leider funktioniert es nicht .. :( – BrK