2010-12-04 8 views
5

Estoy intentando subir una nueva unidad de informe al jasperserver a través del servicio web desde C# .net He cargado/creado correctamente la unidad de informe pero cuando hago clic en informe a través del navegador de repositorio de iReport que dice "¡No hay datos adjuntos presentes!" en un cuadro emergente. A continuación se muestra el 'createXML' Voy a enviar al servicio web:Subir unidad de informe a través del servicio web en C# .net a jasperserver

<request operationName='put' locale='en'> 
      <resourceDescriptor name='barunit' wsType='reportUnit' 
      uriString='/reports/bar/bar_files' 
      isNew='true'> 
      <label>Bar Unit</label> 
      <description>This is a test</description> 
      <resourceProperty name='PROP_PARENT_FOLDER'> 
       <value>/reports/bar</value> 
      </resourceProperty> 

      <resourceDescriptor name='bar.jrxml' wsType='jrxml' 
       uriString='/reports/bar/bar_files' 
       isNew='true'> 
       <label>Bar Report</label> 
       <description>This is a test</description> 

       <resourceProperty name='PROP_RU_IS_MAIN_REPORT'> 
        <value>true</value> 
       </resourceProperty> 
      </resourceDescriptor> 
     </resourceDescriptor> 
    </request> 

Y aquí está el código que envía 'createXML' para el servicio web:

JasperService.ManagementServiceService service = new JasperService.ManagementServiceService(); 
     service.Credentials = new System.Net.NetworkCredential("jasperadmin", "jasperadmin"); 
     service.PreAuthenticate = true; 

FileStream fs = new FileStream(@"C:\bar.jrxml", FileMode.Open, FileAccess.Read); 


     Microsoft.Web.Services2.Attachments.Attachment jrxmlAttachment = new Microsoft.Web.Services2.Attachments.Attachment("text/xml",fs); 

     service.RequestSoapContext.Attachments.Add(jrxmlAttachment); 
     string out = service.put(createXML); 

La respuesta de la llamada de servicio web da código de éxito '0' así que estoy algo perplejo. Supongo que el problema está en el archivo adjunto a RequestSoapContext porque todo se remonta mucho antes.

¡Cualquier ayuda sería muy apreciada!

Respuesta

5

Me faltan algunas etiquetas: CREATE_REPORTUNIT_BOOLEAN, PROP_HAS_DATA, y PROP_PARENT_FOLDER.

A continuación se muestra el xml de solicitud final que me permitió subir la unidad de informe a través del servicio web. El C# que llama al servicio no cambió con respecto a la pregunta original.

<request operationName='put' locale='en'> 
    <argument name='CREATE_REPORTUNIT_BOOLEAN'>true</argument> 
    <resourceDescriptor name='barunit' wsType='reportUnit' 
     uriString='/reports/bar/bar_files' 
     isNew='true'> 
     <label>Bar Unit</label> 
     <description>This is a test</description> 
     <resourceProperty name='PROP_PARENT_FOLDER'> 
     <value>/reports/bar</value> 
     </resourceProperty> 

     <resourceDescriptor name='bar.jrxml' wsType='jrxml' 
      uriString='/reports/bar/bar_files' 
      isNew='true'> 
     <label>Bar Report</label> 
     <description>This is a test</description> 

     <resourceProperty name='PROP_RU_IS_MAIN_REPORT'> 
      <value>true</value> 
     </resourceProperty> 
     <resourceProperty name='PROP_HAS_DATA'> 
      <value><![CDATA[true]]></value> 
     </resourceProperty> 
     <resourceProperty name='PROP_PARENT_FOLDER'> 
      <value>/reports/testunit_files</value> 
     </resourceProperty> 
     </resourceDescriptor> 
    </resourceDescriptor> 
</request> 

Espero que ayude a alguien por ahí!

Cuestiones relacionadas