Ich verwende einen Dispatch-Client, um auf einen Webdienst zuzugreifen. Alle meine Parameter sind korrekt, es gibt keine Fehler und beim Prüfen der Antwort mit Wireshark sehe ich definitiv, dass die richtige Antwort auf der Netzwerkebene empfangen wird. Aber auf der Java-Anwendungsebene ist meine Antwortquelle leer.
public void testDispatch(QName serviceName, QName portName, String endpointAddress, String action) throws Exception {
Service service = Service.create(serviceName);
service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress);
String requestXml = buildRequestXml();
Dispatch dispatch = service.createDispatch(portName, Source.class, Service.Mode.MESSAGE);
dispatch.getRequestContext().put(BindingProvider.SOAPACTION_URI_PROPERTY, action);
Source request = new StreamSource(new StringReader(requestXml));
Source response = dispatch.invoke(request);
Transformer copier = TransformerFactory.newInstance().newTransformer();
copier.transform(response, new StreamResult(System.out));
}
Ich habe versucht, zu einem DOMResult zu transformieren, dasselbe, eine leere Wurzelknoten. Irgendwelche Ideen?