Estilo JAX-WS x SAAJ, que usar

Qual é a diferença, filosófica ou não, entre chamar um serviço da Web a partir do código Java usando as classes Service e Dispatch, versus uma classe SOAPConnection?

Por exemplo, algo como isto:

SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = scf.createConnection();
SOAPMessage reply = soapConnection.call(soapMessage, url);

vs algo aproximadamente nesse sentido?

svc = Service.create(url, serviceName);
Dispatch<SOAPMessage> dispatch = svc.createDispatch(portName, SOAPMessage.class, service.Mode.MESSAGE);
SOAPMessage reply = (SOAPMessage)dispatch.invoke(soapMessage);

Qual é a diferença entre estes e por que selecionar uma abordagem sobre a outra?

questionAnswers(2)

yourAnswerToTheQuestion