Because the initialization of the WS client side port is so costly we would like to reuse the same instance. We would also like to set different values in the BindingProvide
For JAX-WS/Metro, that's definitely not thread safe. The best bet is to create a Pool of proxies and, when needed, pull a proxy from the pool, configure it, use it, clear the set values, return to the pool.