Hi,
Using Struts 2.1.8 and the JasperReports plugin for Struts 2 
struts2-jasperreports-plugin-2.1.8.jar.

I am trying to display an image in a PDF report. That image is stored as BLOB 
in the database.

In struts.xml I have specified the following code:

<action name="afficheFichePDF" 
class="com.eni.dvtejb.clientStruts2.action.JasperArticleAction">
        <result name="success" type="jasper">
            <param name="location">rapports\ficheArticle.jasper</param>
            <param name="dataSource">artDetails</param>
            <param name="format">PDF</param>
            <param name="reportParameters">paramsRapport</param>
            <param 
name="imageServletUrl">/servlets/image?image=</param>            
        </result>
</action>

In my web.xml I have added the mapping for the ImageServlet servlet that is 
part of the JasperReports library :

<servlet>
    <servlet-name>ImageServlet</servlet-name>
    
<servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ImageServlet</servlet-name>
    <url-pattern>/servlets/image</url-pattern>
  </servlet-mapping>
  
In my .jrxml file, produced with iReport, I have defined a field with 
Expression class equal to java.io.InputStream.


I get the following error :

Struts Problem Report

Struts has detected an unhandled exception:
Messages:     

   1. Cannot cast object 
'org.apache.struts2.views.jasperreports.valuestackdatasou...@a0d16c' with class 
'org.apache.struts2.views.jasperreports.ValueStackDataSource' to class 
'java.io.InputStream'
   2. Error evaluating expression : Source text : $F{image}
   3. Error evaluating expression : Source text : $F{image}

File:     
org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
Line number:     340
Stacktraces
javax.servlet.ServletException: Error evaluating expression : Source text : 
$F{image}

    
org.apache.struts2.views.jasperreports.JasperReportsResult.doExecute(JasperReportsResult.java:331)
    
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
    
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)

I tried without the image, it works. But then how exactly do you handle images 
with that plugin ? What is the format of the image supposed to be in the .jrxml 
file ?

Thanks for helping.


      

Reply via email to