Ponieważ inicjalizacja usługi i portu klienta WS trwa wieki, chciałbym zainicjować je raz podczas uruchamiania i ponownie użyć tego samego wystąpienia portu. Initalization będzie wyglądać mniej więcej tak:Czy ten wątek połączenia klienta JAX-WS jest bezpieczny?
private static RequestContext requestContext = null;
static
{
MyService service = new MyService();
MyPort myPort = service.getMyServicePort();
Map<String, Object> requestContextMap = ((BindingProvider) myPort).getRequestContext();
requestContextMap = ((BindingProvider)myPort).getRequestContext();
requestContextMap.put(BindingProvider.USERNAME_PROPERTY, uName);
requestContextMap.put(BindingProvider.PASSWORD_PROPERTY, pWord);
rc = new RequestContext();
rc.setApplication("test");
rc.setUserId("test");
}
Wezwanie gdzieś w mojej klasie:
myPort.someFunctionCall(requestContext, "someValue");
Moje pytanie: Czy to wezwanie być bezpieczny wątku?
Jonny
już tutaj odpowiedzi: http://stackoverflow.com/questions/4385204/are-jax-ws-clients-thread-safe – kyiu
Hi KHY , Dziękuję za szybką odpowiedź. Widziałem ten wątek. Mój problem polega na tym, że brakuje mi jakiegokolwiek (oficjalnego) stwierdzenia, co jest wątków bezpieczne, czy nie (usługa/port/itp.). Moja przypadek użycia różni się także od drugiego wątku. Jonny – user871611
Oto odpowiedź znaleziona na stronie CXF: https://cwiki.apache.org/CXF/faq.html#FAQ-AreJAXWSclientproxiesthreadsafe%253F – kyiu