Der JavaScript Code in einer HTML-Datei kann Service Component Architecture (SCA)-Referenzen verwenden, die in einer Tuscany Widget-Implementierung definiert sind. Verwenden Sie die Widget-Implementierung für die Bearbeitung von Daten in Atom-Sammlungen, die ein SCA-Service in JavaScript zurückgibt.
Sie können eine Atom-Bindung in einer SCA-Anwendung verwenden, um Datensammlungen als
Atom-Feed bereitzustellen oder um auf vorhandene externe Atom-Feeds zu verweisen. Wenn Sie mit dem Protokoll "Atom" nicht vertraut sind, sehen Sie sich die Dokumentation zu
Atom Syndication Format, einem XML-basierten Dokumentformat an, das Web-Feeds und Atom Publishing Protocol, ein
Protokoll für die Veröffentlichung und Aktualisierung von Webressourcen, beschreibt.
Informationen zu dieser Task
Eine SCA-Komponente kann SCA-Referenzen für die Verwendung in JavaScript-Code definieren. Verwenden Sie die Tuscany-Widget-Implementierung, um die Referenzen zu definieren. Die Implementierung
unterstützt Referenzen, die eine Atom-Bindung verwenden, aber nicht die Definition von SCA-Services.
Der SCA-Verbund, der die Widget-Implementierung verwendet, muss in einer WAR-Datei (Webanwendungsarchiv)
implementiert sein.
- Konfigurieren Sie eine Widget-Implementierung in einer SCA-Verbunddefinition.
Erstellen Sie eine SCA-Verbunddefinitionsdatei für eine Komponente, die die
Tuscany-Implementierung implementation.widget verwendet. Beispiel:
<composite>
<component name="Store">
<tuscany:implementation.widget location="ui/store.html"/>
<reference name="shoppingCart">
<tuscany:binding.atom uri="/ShoppingCart/Cart"/>
</reference>
</component>
</composite>
In diesem Beispiel wird eine Komponente "Store" definiert, die die Tuscany-Implementierung
implementation.widget in einer HTML-Datei an der Position
ui/store.html verwendet.
- Aktivieren Sie die SCA-Referenz in einer HTML-Datei.
Definieren Sie in der HTML-Datei ui/store.html zwei erforderliche Scriptelemente, die
SCA-Referenzen aktivieren. Geben Sie für das erste Element Folgendes an:
<script type="text/javascript>>
dojo.registerModulePath("tuscany", "/Store/tuscany");
dojo.require("tuscany.AtomService");
</script>
Diese Definition ist erforderlich, wenn Atom-Bindungsreferenzen verwendet werden. Die Methode dojo.registerModulePath teilt dem Objekt dojo mit, wo die Anforderungen im
Tuscany-Namespace zu finden sind. Das erste Argument ist immer "tuscany". Das zweite Argument wird im Format angegeben/SCA_component_name/tuscany . Die Anweisung dojo.require für "tuscany.AtomService" bewirkt, dass der Browser
die JavaScript-Datei aus der Datei /Store/tuscany/AtomService.js lädt. Das Produkt generiert diese Datei dynamisch, um die Atom-Bindungsreferenzen mit Atom-Services zu verbinden.
Geben Sie für das zweite Element Folgendes an:
<script type="text/javascript" src="/Store/store.js"></script>
Diese Definition ist in jeder HTML-Datei erforderlich, die als Implementierung für eine
Widget-Implementierungskomponente verwendet wird. Für das Skriptsrc Attribut, geben Sie den Uniform Resource Identifier (URI) im Format /SCA_component_name/modified_implementation.widget_location_attribute ; Zum Beispiel,/Store/store.js . Das geänderte Positionsattribut ist das Positionsattribut für die
Widget-Implementierung ohne einen führenden Pfad und mit der Dateierweiterung .js.
- Definieren Sie die SCA-Referenz in JavaScript in der HTML-Datei.
Eine HTML-Datei, die die vorherige Beispielreferenz enthält, können wie folgt aussehen:
//@Reference
var catalog = new tuscany.sca.Reference("shoppingCart");
Der Kommentar //@Reference ist erforderlich. Die SCA-Laufzeitumgebung interpretiert den Kommentar auf dieselbe Weise wie eine Java-Klasse ein Tag @Reference.
- Verwenden Sie JavaScript, um die Feed-Referenz zu bearbeiten.
Wenn beispielsweise ein vollständiger Feed abgerufen werden soll,
könnte die HTML-Datei den folgenden Beispielcode verwenden:
var items = shoppingCart.get("");
Wenn ein einzelner Eintrag abgerufen werden soll, könnte die Implementierung Folgendes aufrufen:
var item = shoppingCart.get("Item1");
Zum Hinzufügen eines neuen Eintrags zum Feed, könnte die HTML-Datei
den folgenden Beispielcode verwenden:
var entry =
'<entry xmlns="https://www.w3.org/2005/Atom"><title>item</title><content type="text/xml">'
+ '<Item xmlns="http://services/">' + <name xmlns="">' + itemName + '</name>'
+ '<price xmlns="">' + itemPrice + '</price>' + '</Item>' + '</content></entry>';
shoppingCart.post(entry);
Nächste Schritte
Implementieren Sie Ihre SCA-Komponente in einer Anwendung.
Weitere Beispiele finden Sie im Artikel
zur Verwendung der Widget-Implementierung in JavaScript mit Atom- oder HTTP-Bindungen.