I am getting an error :: org.apache.poi.openxml4j.exceptions.InvalidFormatException cannot be resolved.

Here the code of my java classes... What i want is to generate an excel report.. please tell me how to give the path in transformer.transformXLS( templateFileName, beans, destFileName) method.. Should i copy the excel files somewhere inside my web project?? 

I am taking the input as id from the user :: using takeinput.jsp, then the value of id will go to ReportServlet then to ReportGen... Where i am writing jdbc code to fetch values from database. and generating excel sheet . please help ?? 

takeinput.jsp 

```
<body>

<form id="reportformid" name="reportform" action="ReportServlet" method="get">
Enter the ID of the person :: <input id="idid" type="text" name="id"/><br><br><br>

<button id="button" name="reportbutton" type="submit"></button>
</form>

</body>

```

web.xml :: 

```
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <servlet>
    <servlet-name>Name</servlet-name>
    <servlet-class>  
            classes.web.ReportServlet  
        </servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Name</servlet-name>
    <url-pattern>/ReportServlet</url-pattern>
  </servlet-mapping>
</web-app>

```

ReportServlet.java(Only the get method)

```
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String id = request.getParameter("id");
        ReportGen obj = new ReportGen();
        obj.getReport(id);
    }

```

ReportGen.java

```
package classes.web;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.RowSetDynaClass;

import net.sf.jxls.report.ResultSetCollection;
import net.sf.jxls.transformer.XLSTransformer;

public class ReportGen {

    HandleConnections obj = new HandleConnections();
    Connection con=null;
    ResultSet rs = null;
    Statement st = null;
    public void getReport(String id){
        String templateFileName = "/GenerateReport/WebContent/WEB-INF/lib/Source.xls";
        String destFileName = "/GenerateReport/WebContent/WEB-INF/lib/Dest.xls";
        try{
            con = obj.getConnection();
            st = con.createStatement();
            String query = "SELECT F_Name, L_Name, P_Address FROM Employee_Table";
            rs = st.executeQuery(query);
            RowSetDynaClass rsdc = new RowSetDynaClass(rs, false);
            Map beans = new HashMap();
            beans.put( "employee", rsdc.getRows() );
            XLSTransformer transformer = new XLSTransformer();
            transformer.transformXLS( templateFileName, beans, destFileName);

        } throws ParsePropertyException
        catch(Exception e){System.out.println(e);}
}
}

```

Stacktrace :: 

```
Feb 22, 2012 3:09:17 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Name] in context with path [/GenerateReport] threw exception [Servlet execution threw an exception] with root cause
java.lang.Error: Unresolved compilation problems: 
    The type org.apache.poi.openxml4j.exceptions.InvalidFormatException cannot be resolved. It is indirectly referenced from required .class files
    The type org.apache.poi.ss.usermodel.Workbook cannot be resolved. It is indirectly referenced from required .class files
    The method transformXLS(String, Map, String) from the type XLSTransformer refers to the missing type InvalidFormatException
    Syntax error on tokens, delete these tokens

    at classes.web.ReportGen.<init>(ReportGen.java:32)
    at classes.web.ReportServlet.doGet(ReportServlet.java:30)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

```