Hi,
ich habe ein Problem mit javax.xml.soap:
Ein soap-Request braucht (der Server verlangt es) einen bestimmten HTTP-Header ("SOAPAction" muß einen definierten Wert haben).
Egal was ich anstelle, der soap-Request geht über die Leitung, aber der SOAPAction-Header hat immer den Wert ""
Folgender Code
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
SOAPMessage soapRequest = messageFactory.createMessage();
soapPart.setContent(new org.jdom.transform.JDOMSource(doc)); //doc ist ein Document, der Teil paßt!
MimeHeaders hd = soapRequest.getMimeHeaders();
/*
egal welche der folgenden add/set Header Methoden ich nutze, der SOAPAction
auch egal, ob ich jeweils die remove...Header drin habe oder nicht.
- der SOAPAction-Header wird als "" übertragen:
*/
//hd.removeHeader("SOAPAction");
//hd.addHeader("SOAPAction", "\"http://test"");
//hd.addHeader("SOAPAction", "http://test");
//hd.setHeader("SOAPAction", "\"bla\"");
//hd.setHeader("SOAPAction", "blubb");
//soapPart.removeMimeHeader("SOAPAction");
//soapPart.setMimeHeader("SOAPAction", "\"soapPartHeadertest\"");
//soapPart.addMimeHeader("SOAPAction", "\"addMimetest\"");
//soapPart.setMimeHeader("SOAPAction", "soapPartHeadertest123");
//soapPart.addMimeHeader("SOAPAction", "addMimetest123");
soapRequest.saveChanges();
SOAPMessage soapResponse = soapConnection.call(soapRequest, theUrl); //funktioniert im Prinzip, d.h. der Request geht auf die Leitung
Wireshark zeigt mir an, daß folgende Header über die Leitung gehen (Servername/URL hab ICH anonymisiert - die sind ja auch nicht das Problem, der Request kommt beim Server an, wird auch beantwortet, aber mit sowas wie "SOAPAction: wrong value" ):
POST /correctUrlForTheRequest HTTP/1.0\r\n
Content-Type: text/xml; charset=utf-8\r\n
Accept: application/soap+xml, application/dime, multipart/related, text/*\r\n
User-Agent: Axis/1.1\r\n
Host: testserver\r\n
Cache-Control: no-cache\r\n
Pragma: no-cache\r\n
SOAPAction: ""\r\n
Content-Length: 2218\r\n
\r\n
Was mache ich falsch?
Es muß doch irgendeinen Weg geben, im SOAPAction Header den von mir gewünschten Wert zu übertragen ...
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.