Frage

Unsere Anwendung ist eine Schnittstelle mit einer Menge von web-services in diesen Tagen.Wir haben unsere eigenen Paket, schrieb jemand vor ein paar Jahren mit UTL_HTTP und es funktioniert im Allgemeinen, aber braucht einige harte Codierung der SOAP-Umschlag arbeiten mit bestimmten Systemen.Ich möchte es generisch, aber es fehlt die Erfahrung zu wissen, wie viele Szenarien ich würde zu kämpfen haben.Die Schwankungen sind in dem, was namespaces deklariert werden müssen und das format der Elemente.Wir verarbeiten sowohl für einfache als auch Anrufe mit ein paar Parametern und diejenigen, passieren eine große Menge von Daten in eine verschlüsselte Zeichenfolge.

Ich weiß, dass 10g hat UTL_DBWS, aber es gibt nicht eine große Anzahl von use-cases on-line.Ist es stabil und flexibel genug für den Allgemeinen Gebrauch? Dokumentation

War es hilfreich?

Lösung

Ich habe verwendet UTL_HTTP das ist einfach und funktioniert.Wenn Sie stehen vor einer Herausforderung, mit Ihrem eigenen Paket, können Sie wahrscheinlich finden eine Lösung in einem der vielen wrapper-Pakete rund um UTL_HTTP im Netz (Google "verbraucht web-Dienste von pl/sql", was Sie z.B.http://www.oracle-base.com/articles/9i/ConsumingWebServices9i.php)

Der Grund, niemand ist mit UTL_DBWS ist, dass es nicht funktionsfähig in einem Standard-Datenbank installiert.Sie müssen die Last einer Tonne von Java-Klassen in die Datenbank, aber die standard-Anweisungen scheinen, um defekt zu sein - der Prozess spuckt Java-Fehler Links und rechts und scheitert letztlich.Es scheint sehr wenige Menschen bereit, sich die Zeit zu nehmen, um die Spur des Pakets, Abhängigkeiten, damit dieser Ansatz funktioniert.

Andere Tipps

Ich hatte diese Herausforderung gefunden und installiert den " SOAP-API-Paket, Sten schlägt auf Oracle-Basis.Es bietet einige gute Umschlag-Erstellung-Funktionalität auf UTL_HTTP.

Es gab jedoch einige Einschränkungen, die in Bezug auf Ihre Frage.SOAP_API übernimmt alle Anfragen sind einfache XML - d.h.nur ein layer-tag-Hierarchie.

Ich streckte die SOAP_API Paket an, dass der client-code zu willkürlich fügen Sie ein extra-tag.So können Sie legen Sie eine sub-Ebene , weiter zu bauen, das Anfrage, und denken Sie daran, fügen Sie ein schließendes tag.

Das namespace-Problem war ein Bär für das Projekt - die verschiedenen Ebenen der XML hatten verschiedene namespaces.

Eine schöne debugging-tool, das ich verwendet wird, ist TCP Trace aus der Tasche Seife.www.pocketsoap.com/tcptrace/ Sie richtete ihn auf, wie ein proxy und beobachten Sie die HTTP-request-und response-Objekten zwischen client-und server-code.

Nachdem alles gesagt, dass wir wirklich wie eine SOAP-client in der Datenbank - wir haben Sie vollen Zugriff auf alle Daten und bestehenden PLSQL-code, kann leicht Durchlaufen-Cursor und rufen Sie eine externe app über SEIFE, wenn nötig.Es war viel schneller und einfacher als die Bereitstellung einer mittleren Schicht mit vielen benutzerdefinierten Java-oder .NET-code.Viel Glück und lassen Sie mich wissen, wenn Sie möchten, um zu sehen, wie meine verbesserte SOAP-API-code.

Wir haben auch UTL_HTTP in einer Art und Weise ähnlich zu dem, was Sie beschrieben haben.Ich habe keine direkte Erfahrung mit UTL_DBWS, so dass ich hoffe, Sie können follow-up mit allen Informationen, die/Erfahrung, die Sie sammeln können.

@kogus, Nein, es ist ein ziemlich gutes design für viele Anwendungen.PL/SQL ist eine vollwertige Programmiersprache, die verwendet wurde, für viele großen Anwendungen.

Schauen Sie sich diese älterer post.Ich muss Zustimmen, dass die post #1 zu beantworten;es ist schwer, sich ein Szenario vorstellen, wo das sein könnte, ist ein gutes design.

Können Sie nicht schreiben Sie einen service-oder standalone-Anwendung, die reden würden, um eine Tabelle in Ihrer Datenbank?Dann könnten Sie umsetzen, was Sie wollen, wie ein trigger auf die Tabelle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top