SOAP-Request über BlackBerry
Sh4itan
- javascript
Hallo Leute,
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. Hier mein Problem:
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...).
Kann mir da irgendeiner helfen?
Mir würde auch ein Link zu einem Tutorial helfen, da ich nicht seehr versirt bin in diesem Thema.
Mfg,
Sh4itan
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
SOAP ist ganz übel viel XML [...] Die WSDL ist wiederum noch mal übles XML
Das beschreibt SOAP ziemlich genau :) danke für diese Zusammenfassung.
Es ist schon PITA wenn man SOAP mit einer serverseitigen Scriptsprache nutzen möchte, aber am Client in JavaScript ist vermutlich Selbstmord.
Es ist schon PITA wenn man SOAP mit einer serverseitigen Scriptsprache nutzen möchte, aber am Client in JavaScript ist vermutlich Selbstmord.#
Hi suit,
es ist ja nicht so, das ich da eine große Wahl hätte ;)
Durch den Umschwung bei RIM's neuem BB10 bleiben mir effektiv nur noch die Möglichkeiten C/C++ oder HTML5/JavaScript. Und erste wurde mir untersagt zu nutzen...
Mfg,
Sh4itan
Hi,
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.
zum von Sven gesagten: es gibt anscheinend SOAP-Libraries für JavaScript, diese habe ich allerdings nicht ausprobiert. Aber vielleicht findest du da etwas, was dir gefällt.
Wenn du nur einzelne Requests stellen willst und nicht eine komplette SOAP-Library bauen willst, kannst du das XML vielleicht auch per Hand zusammenbauen. Schreib dir mit einer SOAP-Library deiner Wahl deinen Client und schau nach, welche XML-Rohdaten da über den Kanal wandern (mit der PHP-SOAP-Library konnte ich da damals reinschauen). Wenn du die Rohdaten hast, brauchst du ja "nur" noch erkennen, welche Felder du auswechseln musst. Du verlierst im Vergleich zu einer "echten" SOAP-Library die komplette Flexibilität, aber ggf. reicht das für einzelne Calls ja schon aus.
Zur gleichen Domain: je nachdem, wie gut der Browser ist, der auf dem BB ist, hilft dir vielleicht das Stichwort CORS weiter. enable-cors.org wurde hier vor einigen Tagen gelinkt, vielleicht hilft dir das weiter.
Bis die Tage,
Matti
Hi Matti,
Wenn du nur einzelne Requests stellen willst und nicht eine komplette SOAP-Library bauen willst, kannst du das XML vielleicht auch per Hand zusammenbauen.
Soweit bin ich dann auch schon vorgedrungen. Ich soll nur 2 Parameter an den Webservice übergeben und die kann ich in ein "starres" Grundgerüst einfach immer wieder einfügen.
Zur gleichen Domain: je nachdem, wie gut der Browser ist, der auf dem BB ist, hilft dir vielleicht das Stichwort CORS weiter. enable-cors.org wurde hier vor einigen Tagen gelinkt, vielleicht hilft dir das weiter.
Das Stichwort ist gut, ich werde es mir auch gleich mal ansehen...
Aber genau wie du hab ich keine Ahnung was der BB-Browser alles unterstützt bzw. ob es dann auch auf allen Versionen der hier eingesetzten BB-OS's läuft...
Mfg,
Sh4itan
Lieber Sh4itan,
jetzt habe ich doch glatt "SOPA-Request" gelesen und dabei gedacht "spinnt der eigentlich komplett"? Der Teufel liegt im Detail, gelle "shaitan"?
Liebe Grüße,
Felix Riesterer.
Hi,
jetzt habe ich doch glatt "SOPA-Request" gelesen und dabei gedacht "spinnt der eigentlich komplett"?
Und das wäre sicher noch einfacher als das, was ich vor habe ;)
Mfg,
Sh4itan