Hallo zusammen,
ich habe ein Problem mit einem SOAP Aufruf. Der untenstehende Code funktioniert zwar grundsätzlich, leider aber nicht bei einer größeren Datenmenge die zurück kommt. Der Soap Service auf der Gegenseite liefert einen sehr einfachen Body zurück, mit einem xml in einem cdata Feld. Ist das xml im cdata überschaubar (2-3mb) funktioniert es, ist das cdata Feld jedoch sehr groß (ca. 17 mb) kommt das Programm nicht zum Ende. Prozessorauslastung bei 35% Arbeitsspeicher füllt sich sehr langsam ... nach mehreren Minuten läuft das Ganze immer noch. Sprich: im untenstehenden Code kommt noch "Response bekommen", das System.out.println kommt nicht mehr. Die Console schweigt - keine Fehlermeldung... Programm läuft in Eclipse. Kann mir hier jemand einen Tipp geben?
ich habe ein Problem mit einem SOAP Aufruf. Der untenstehende Code funktioniert zwar grundsätzlich, leider aber nicht bei einer größeren Datenmenge die zurück kommt. Der Soap Service auf der Gegenseite liefert einen sehr einfachen Body zurück, mit einem xml in einem cdata Feld. Ist das xml im cdata überschaubar (2-3mb) funktioniert es, ist das cdata Feld jedoch sehr groß (ca. 17 mb) kommt das Programm nicht zum Ende. Prozessorauslastung bei 35% Arbeitsspeicher füllt sich sehr langsam ... nach mehreren Minuten läuft das Ganze immer noch. Sprich: im untenstehenden Code kommt noch "Response bekommen", das System.out.println kommt nicht mehr. Die Console schweigt - keine Fehlermeldung... Programm läuft in Eclipse. Kann mir hier jemand einen Tipp geben?
Java:
// SOAPConnectionFactory
SOAPConnectionFactory soapConnectionFactory = null;
try {
soapConnectionFactory = SOAPConnectionFactory.newInstance();
} catch (UnsupportedOperationException e1) {
services.Log.log("e", e1.toString());
e1.printStackTrace();
} catch (SOAPException e1) {
services.Log.log("e", e1.toString());
e1.printStackTrace();
}
// SOAPConnection
SOAPConnection soapConnection = null;
try {
soapConnection = soapConnectionFactory.createConnection();
} catch (SOAPException e1) {
services.Log.log("e", e1.toString());
e1.printStackTrace();
}
try {
// Massage Facotory
MessageFactory messageFactory = MessageFactory.newInstance();
// SOAP Message
SOAPMessage soapMessage = messageFactory.createMessage();
// SOAP Part
SOAPPart soapPart = soapMessage.getSOAPPart();
String myNamespace = "xx";
String myNamespaceURI = "xx";
// SOAP Envelope
SOAPEnvelope envelope = soapPart.getEnvelope();
envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI);
// SOAP Body
SOAPBody soapBody = envelope.getBody();
SOAPElement soapBodyElem = soapBody.addChildElement("xxx", myNamespace);
SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("xxx");
soapBodyElem1.addTextNode(xxx);
SOAPElement soapBodyElem2 = soapBodyElem.addChildElement("xxx");
soapBodyElem2.addTextNode(xxx);
// Soap Header
MimeHeaders headers = soapMessage.getMimeHeaders();
headers.addHeader("SOAPAction", "xxx");
// Soap Message speichern
soapMessage.saveChanges();
String webServiceUrl = main.SmallJobs.webServiceUrl + "xxx";
SOAPMessage soapResponse = soapConnection.call(soapMessage, webServiceUrl);
log("Response bekommen... ");
System.out.println("Kontent" + soapResponse.getSOAPBody().getTextContent());