Да, есть.
Используйте Dispatch<Source>
для работы с SOAP-сообщением JAX-WS Dispatch .
Пример
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Даже не пытался скомпилировать код:
//xmlString has the xml message to send to the web service
StreamSource xmlMsg = new StreamSource(new StringReader(xmlString));
//Create URL of web service. Place your URL for WSDL
URL wsdlURL = new URL("http://10.5.2.10:8080/path/service?wsdl");
QName serviceName = new QName("http://example.com", "TrivialWebService");
Service s = Service.create(wsdlURL, serviceName);
QName portName = new QName("http://example.com", "TrivialWebServicePort");
//Service.Mode.MESSAGE works on SOAP msg (as opposed to Service.Mode.PAYLOAD)
Dispatch<Source> dispatch = createDispatch(portName,
Source.class,
Service.Mode.MESSAGE);
//Send request
Source reply = dispatch.invoke(xmlMsg);
DOMResult domResponse = new DOMResult();
Transformer trans = TransformerFactory.newInstance().newTransformer();
trans.transform(reply, domResponse);
//Now use DOM APIs
Вы также можете указать, хотите ли вы работать с полезной нагрузкой HTTP (в виде XML), т.е. с конвертом SOAP или с полезной нагрузкой SOAP, т.е. с ответом.
Вам потребуется написать код для обработки необработанного XML (например, использовать DOM).
Вы можете использовать этот API, если вы используете JAX-WS или CXF.
Для AXIS2 можно работать и с XML. Просто будет какой-то конкретный apis
Конечно, есть также SAAJ, который вы можете использовать.