[AIX Solaris HP-UX Linux Windows]

Utilización de la implementación de widgets en JavaScript con enlaces HTTP (en desuso)

El JavaScript El código de un archivo HTML puede utilizar referencias de arquitectura de componentes de servicio (SCA) que se definen en una implementación del widget Tuscany. Utilice la implementación de widgets para trabajar con datos en formato JSON (JavaScript Object Notation) que un servicio SCA devuelve en JavaScript.

Antes de comenzar

Puede utilizar el enlace HTTP con un formato de conexión de JSON-RPC para exponer servicios SCA en los clientes de navegador web remotos. JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) codificado en formato JSON.

Acerca de esta tarea

Un componente SCA puede definir referencias SCA para utilizar en código JavaScript. Utilice la implementación de widgets Tuscany para definir las referencias. La implementación da soporte a referencias que utilizan un enlace HTTP con un formato de conexión JSON-RPC y no da soporte a la definición de servicios SCA.

El compuesto SCA que utiliza la implementación de widgets debe desplegarse dentro de un archivo WAR (Web Application Archive).

Procedimiento

  1. Configure una implementación de widgets en una definición de compuesto SCA.

    Cree un archivo de definición de compuesto SCA para un componente que utilice Tuscany implementation.widget. Por ejemplo:

    <composite>
      <component name="Store">
        <tuscany:implementation.widget location="ui/store.html"/>
           <reference name="catalog">
             <tuscany:binding.http uri="/Catalog"/>
               <tuscany:wireFormat.jsonrpc/>
             </tuscany:binding.http>
           </reference>
      </component>
    </composite>

    Este ejemplo define un componente Store que utiliza Tuscany implementation.widget en un archivo HTML en ui/store.html.

  2. Cree el archivo HTML especificado en la definición de compuesto SCA para la implementación de widgets.

    En el archivo HTML, defina elementos de script necesarios como se indica a continuación:

    <script type="text/javascript" src="/Store/store.js"></script>

    El atributo src de script apunta a un archivo JavaScript que el producto genera dinámicamente para conectar las referencias SCA a sus servicios asociados. Especifique el identificador uniforme de recursos (URI) en el formato /SCA_component_name/modified_implementation.widget_location_attribute ; Por ejemplo,/Store/store.js . El atributo de ubicación modificado es el atributo de ubicación sin una vía de acceso inicial y con una extensión de archivo .js.

  3. Defina la referencia SCA en JavaScript en el archivo HTML.

    En el archivo HTML, defina una referencia SCA. Por ejemplo:

    //@Reference
    var catalog = new tuscany.sca.Reference("catalog");
  4. Añada código de JavaScript que utilice la referencia al archivo HTML.

    El código utilizado para este ejemplo es parecido al siguiente:

    <script>
    
      function init() {
        catalog.get().addCallback(catalog_getResponse);
      }
    
      function catalog_getResponse(items,exception) {
        if(exception){
          alert(exception.message);
          return;
        }    
        var catalog = "";
        for (var i=0; i < items.length; i++) {
          var item = items[i].name + ' - ' + items[i].price;
          catalog += '<input name="items" type="checkbox" value="' +
            item + '">' + item + '<br>';
        }
        document.getElementById('catalog').innerHTML=catalog;
      }
    
    </script>
    

    En este código de ejemplo, el método init llama al método get en la referencia catalog. El resultado se envía al método de devolución de llamada callback_getResponse(). El método de devolución de llamada añade elementos checkbox al HTML para cada artículo devuelto del método de catálogo get.

  5. Añada la interfaz de usuario al archivo HTML según sea necesario.

    El archivo ui/store.html utilizado para este ejemplo podría utilizar la siguiente interfaz de usuario:

    <html>
    <body onload="init()">
    <h1>Store</h1>
       <h2>Catalog</h2>
       <form name="catalogForm">
          <div id="catalog"></div>
          <br>
          <input type="button" onClick="addToCart()" value="Add to Cart">
       </form>
    </body>
    </html>
    

Qué hacer a continuación

Despliegue el componente SCA en una aplicación.

Cuando se utiliza la implementación de widget, las referencias a enlaces HTTP se debe desplegar en el mismo servidor o clúster que los servicios de enlaces HTTP a los que hacen referencia. Esta limitación es un resultado de las limitaciones de navegador en la invocación JavaScript entre dominios. Si la aplicación define la referencia y el servicio en servidores o clústeres diferentes, utilice un servidor de proxy para que se pueda acceder al recurso de implementación de widget que contiene la referencia y el servicio de enlace HTTP utilizando el mismo dominio HTTP.

Para resolver las referencias a enlaces HTTP, utilice un atributo de destino, @target, en la referencia o especifique el atributo de URI en el elemento binding.http. Para obtener más información, consulte el tema sobre cómo resolver referencias SCA.

Para obtener más ejemplos, consulte el tema sobre cómo utilizar la implementación de widget en JavaScript con enlaces Atom o HTTP.