Możesz na przykład podać klienta MyClass jako komponent sprężynowy i wstrzyknąć go tam, gdzie jest potrzebny. Należy pamiętać o bezpieczeństwie wątków, ponieważ klient proxy RestEasy używa pod klientem Apache Commons Http i jako domyślny SimpleHttpConnectionManager, który nie jest bezpieczny dla wątków.
Aby to osiągnąć w wielowątkowym enironment (uruchomiony w Servlet Container) to zrobić:
MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
HttpClient httpClient = new HttpClient(connectionManager);
// Only needed if you have a authentication
Credentials credentials = new UsernamePasswordCredentials(username, password);
httpClient.getState().setCredentials(AuthScope.ANY, credentials);
httpClient.getParams().setAuthenticationPreemptive(true);
clientExecutor = new ApacheHttpClientExecutor(httpClient);
MyClass client = ProxyFactory.create(MyClass.class, "http://localhost:8080", clientExecutor);
Dzięki! to sprawi, że kod będzie bezpieczny dla wątków? – avillagomez
@avillagomez - tak – emd
@avillagomez - Tylko upewnij się, że klient MyClass jest singleton (jest tworzony tylko raz) – emd