JAX-WS supports both static proxy-based invocation (generating client stubs from WSDL at compile time) and dynamic invocation (using Dispatch API at runtime). It also supports both synchronous (blocking) and asynchronous (non-blocking with callbacks or polling) invocation patterns. These represent independent dimensions - static/dynamic refers to how the client is created, synchronous/asynchronous refers to how the call is made.