Failed to load app - failed to initialize jsclass - Presto.BasicApp, viewConfig is undefined

david_rengifo
david_rengifo's picture
User offline. Last seen 5 weeks 13 hours ago. Offline
Joined: 01/14/2009
Points: 10

Haciendo uso de Presto 3.1 en localhost con configuración predeterminada.

Se construyó un mashup holamundo, se generó una vista tipo Grid, se registro el App, se publicó en el App Store, se aprobó la publicación.

Al seleccionar Open the App se obtiene el error: Failed to load app - failed to initialize jsclass - Presto.BasicApp, viewConfig is undefined

??? Qué faltó ??? Qué hice mal ???

Aquí esta el código del App...

<?xml version="1.0" encoding="UTF-8"?>
<app height="500px" id="holaTu_runMashup" jsclass="Presto.BasicApp"
     name="holaTu runMashup"
     refreshinterval="0"
     sandbox="false"
     width="auto">  
   <title>holaTu runMashup</title>  
   <author>JackBe Presto</author>  
   <description>Muestra el saludo con el nombre recibido</description>  
   <properties>          
      <property datatype="string" defaultvalue="invitado" isinput="yes" label="Nombre"
                name="name"
                possiblevalues=""
                presto_isheader="false"
                presto_path="/name"
                readonly=""
                required="no"
                tooltip=""
                validation="any"
                width=""/>
          <property datatype="enum" defaultvalue="20" label="Rows per Page"
                name="presto.rowsPerPage"
                possiblevalues="20,50,75,100,200,All"/>
          <property datatype="boolean" defaultvalue="false" label="Show Pagination Controls"
                name="presto.showPaginationControls"
                required="true"/>
    </properties>  
   <views>          
      <view enable="true" isdefault="false" name="Saludo"/>
    </views>      
   <presto-meta name="service" type="text">holaTu</presto-meta>
      <presto-meta name="operation" type="text">runMashup</presto-meta>
      <presto-meta name="serviceuri" type="text">/presto/edge/api/rest/holaTu/runMashup?x-presto-resultFormat=json</presto-meta>
      <presto-meta name="contenttype" type="text">application/x-www-form-urlencoded</presto-meta>
      <presto-meta name="postbody"><![CDATA[[object Object]]]></presto-meta>
      <presto-meta name="viewconfig"><![CDATA[[{"viewType": "complexgrid", "title": "Grid", "description": "", "lib": "complexgrid", "events": ["rowclick", "cellclick"], "record": "/Hola", "columns": [{"header": "Saludo", "data-type": "string", "width": "", "group": false, "name": ""}], "name": "Saludo"}][{"viewType": "complexgrid", "title": "Grid", "description": "", "lib": "complexgrid", "events": ["rowclick", "cellclick"], "record": "/Hola", "columns": [{"header": "Saludo", "data-type": "string", "width": "", "group": false, "name": ""}], "name": "Saludo"}]]]></presto-meta>
    <topics>          
      <topic datatype="string" name="propertychange" subscribe="true">        
         <properties>          
            <property datatype="string" name="name" required="false"/>
         </properties>
      </topic>
          <topic datatype="object" name="Saludo.rowclick" publish="true">        
         <properties>          
            <property datatype="string" name="Saludo" required="false"/>
         </properties>
      </topic>
    </topics>  
   <requires>    
      <require name="basic-app" type="library"/>
   </requires>  
   <dependson>    
      <resource name="holaTu" operation="runMashup" type="service"/>
   </dependson>  
   <category/>  
   <provider>NONE</provider>
</app>

--
David Alexander Rengifo Rodríguez
Consultor TI
Venezuela - UnYK: 602 ZCA

http://david.rengifo.com.mx/ 

0
Your rating: None
jorge.rivero
jorge.rivero's picture
User offline. Last seen 23 weeks 5 days ago. Offline
Joined: 10/23/2008
Points: 1

Hola Juan,

En contre un error de sintansis verifica esta seccion

+++ tu codigo +++  estas repitiendo el la definicion de la vista, aqui es necesario mensionar que tu en la seccion views unicamente tienes

     <views>                   
                    <view enable="true" isdefault="false" name="Saludo"/>
        </views>

Por lo tanto, es incorrecto poner dos views ahí y en segundo lugar el error de sintaxis para un arreglo es ["elemento1","elemento2"].  Pero en tu caso tienes que definir unicamente un view y no repetirlo.

       <!--presto-meta name="viewconfig"><![CDATA[[{"viewType": "complexgrid", "title": "Grid", "description": "", "lib": "complexgrid", "events": ["rowclick", "cellclick"], "record": "/data/actions/item", "columns": [{"header": "Saludo", "data-type": "string", "width": "", "group": false, "name": ""}], "name": "Saludo"}][{"viewType": "complexgrid", "title": "Grid", "description": "", "lib": "complexgrid", "events": ["rowclick", "cellclick"], "record": "/Hola", "columns": [{"header": "Saludo", "data-type": "string", "width": "", "group": false, "name": ""}], "name": "Saludo"}]]]></presto-meta-->

+++ codigo correcto +++
       <presto-meta name="viewconfig"><![CDATA[[{"viewType": "complexgrid", "title": "Grid", "description": "", "lib": "complexgrid", "events": ["rowclick", "cellclick"], "record": "/Hola", "columns": [{"header": "Saludo", "data-type": "string", "width": "", "group": false, "name": ""}], "name": "Saludo"}]]]></presto-meta>

Yo utilize el siguiente hello.xml y agregue un view desde Presto Mashup y genere un app y sin problema alguno, ademas en mi caso tuve que cambiar el nombre al metodo de mi servicio. Lo que no entiendo es la relacion que tiene el parametro de entrada de  tu ejemplo con la vista tabular, yo en mi ejemplo no lo incluyo.

A este mismo correo agregue mi app y el servicio que utilize, intenta con mi ejemplo y al final compara tu ejemplo.

Verifica el video, porque hay una seccion de seguridad que tienes que tomar encuenta si tuvieras que utilizar diferente usuario, pero si utilizas al usuario admin unicamente no deberias tener ningun problema al aprobar tu applicacion.

++++++++++

<data>
  <actions>
    <item><saludo>Hello</saludo></item>
    <item><saludo>David</saludo></item>
    <item><saludo>Thanks</saludo></item>
  </actions>
</data>

+++++++

<?xml version="1.0" encoding="UTF-8"?>
<app height="500px" id="HelloJuanApp2" jsclass="Presto.BasicApp"
         name="HelloJuanApp2"
         refreshinterval="0"
         sandbox="false"
         width="auto">   
     <title>HelloJuanApp2</title>   
     <author>JackBe Presto</author>   
     <description/>   
     <properties>                   
            <property datatype="enum" defaultvalue="20" label="Rows per Page"
                                name="presto.rowsPerPage"
                                possiblevalues="20,50,75,100,200,All"/>
                    <property datatype="boolean" defaultvalue="true" label="Show Pagination Controls"
                                name="presto.showPaginationControls"
                                required="true"/>
        </properties>   
     <views>                   
                    <view enable="true" isdefault="false" name="Saludo"/>
        </views>           
     <presto-meta name="service" type="text">HelloJuan</presto-meta>
            <presto-meta name="operation" type="text">getData</presto-meta>
            <presto-meta name="serviceuri" type="text">/presto/edge/api/rest/HelloJuan/getData?x-presto-resultFormat=json</presto-meta>
            <presto-meta name="contenttype" type="text">application/x-www-form-urlencoded</presto-meta>
            <presto-meta name="postbody"><![CDATA[[object Object]]]></presto-meta>
            <presto-meta name="viewconfig"><![CDATA[[{"viewType": "complexgrid", "title": "Grid", "description": "", "lib": "complexgrid", "events": ["rowclick", "cellclick"], "record": "/data/actions/item", "columns": [{"header": "saludo", "name": "saludo", "data-type": "string"}], "name": "Saludo"}]]]></presto-meta>
            <presto-meta name="layout" type="text">stacked</presto-meta>
        <topics>                   
            <topic datatype="string" name="propertychange" subscribe="true">               
                 <properties/>
            </topic>
            <topic datatype="object" name="Saludo.rowclick" publish="true">               
                 <properties>                   
                        <property datatype="string" name="saludo" required="false"/>
                 </properties>
            </topic>
        </topics>   
     <requires>       
            <require name="basic-app" type="library"/>
     </requires>   
     <dependson>       
            <resource name="HelloJuan" operation="getData" type="service"/>
     </dependson>   
     <category>/</category>   
     <tags>sample</tags>   
     <provider>Google</provider>
</app>
 

+++++++++++

Saludos,

Jorge Rivero.

jorge.rivero
jorge.rivero's picture
User offline. Last seen 23 weeks 5 days ago. Offline
Joined: 10/23/2008
Points: 1

Este video muestra como se genero el ejercicio. 

http://screencast.com/t/mYE2NQ5hn

Best,

 Indianapolis Web Design