Moin!
ich habe ein "kleines" Problem. Ich bin dabei, eine Applikation zu schreiben, die auf BlackBerrys laufen soll. Pflicht dabei ist, das diese App auf HTML5 und JavaScript basieren soll.
Und sonst nix? Also reine Client-Programmierung?
Die App soll über einen SOAP-Request einen Webservice aufrufen, der intern im Unternehmen verfügbar ist. Da BlackBerry und Unternehmen aber nicht in der gleichen Domain liegen, kann ich mit JavaScript keinen einfachen Request machen. Mir ist auch nicht bekannt, das ich über das BlackBerry einen Proxy laufen lassen kann (z.B. PHP-Proxy), der meine Daten an den Webservice übergibt. Da der Webservice auch kein json-Format unterstützt, kann ich ebenfalls auf die Variante jQuery/jsonP nicht zurückgreifen.
Gibt es für dieses Problem irgendeine andere Möglichkeit, wie ich es lösen könnte? Vorraussetzung ist wie gesagt, dass ich in der App selbst nur JavaScript und HTML5 nutzen kann (zwecks Kompatibilität zu den BB10-Endgeräten, auf denen kein Java mehr läuft...).
Ich würde niemals ernsthaft in Erwägung ziehen (selbst wenn es domainmäßig ginge), von einem Browser aus direkt einen SOAP-Service abzufragen. SOAP ist ganz übel viel XML, deshalb recht aufwendig zu parsen, und zweifelsfrei möchte man bei der Nutzung von SOAP auch unbedingt die WSDL dabei haben, die den Service, die aufrufbaren Methoden und die zu übermittelnden Daten beschreiben. Die WSDL ist wiederum noch mal übles XML - vor allem dann, wenn Entwickler sich denken, dass man die Spezifikation ja einfach mal aufs Maximum hin ausreizen könnte.
Die simpelste Sache, die an dieser Stelle denkbar ist (und ich nehme an, der SOAP-Service selbst wird vermutlich nur irgendeine kleine Pillepalle-Info rausrücken): Bau einen Proxy, der zu deinem Client hin JSON ausliefert und auf der zur Webapp zugehörigen Domain erreichbar liegt, damit Ajax direkt funktioniert. Und der macht nichts anderes, als den Ajax-Request in SOAP zu wandeln und das Ergebnis als JSON zurückzugeben.
Mir würde auch ein Link zu einem Tutorial helfen, da ich nicht seehr versirt bin in diesem Thema.
Ich will nicht ausschließen, dass es möglich ist, mit irgendwelchen Verrenkungen mittels Javascript auf einem mobilen Endgerät einen SOAP-Service anzusprechen, der auf einer "fremden Domain" liegt. Aber ich bin mir sicher, dass das einen Aufwand erzeugt, der in keinem Verhältnis zum Ergebnis steht und sowieso viel größer ist, als das Verfügbarmachen eines passenden Ajax-zu-SOAP-Proxy.
- Sven Rautenberg