Question

i can reach my Servlet locally in jetty (run as googlewebtoolkit),

but when i deploy my app in Tomcat like

192.0.1.23:8080/test/servlet

and trying to run it, it shows me nothing

this is my File web.xml:

<servlet>  
 <servlet-name>PrintReport</servlet-name>  
 <servlet-class>com.testre.test.server.PrintReport</servlet-class>  
</servlet>  
<servlet-mapping>  
 <servlet-name>PrintReport</servlet-name>  
 <url-pattern>/test/servlet</url-pattern>  
</servlet-mapping>  

my servsided file

import java.io.IOException;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperRunManager;

public class PrintReport extends HttpServlet {  


    public void doGet(HttpServletRequest request, HttpServletResponse response)
    {
    byte[] bytes = null;
    try {

        HashMap hm = new HashMap();
        hm.put("tset", "test");

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

        String url = "jdbc:sqlserver://test;instanceName=test;databaseName=test";
        java.sql.Connection conn = DriverManager.getConnection(url, "accenon", "accenon");

        JasperCompileManager.compileReportToFile("test.jrxml","tes.jasper");
        bytes = JasperRunManager.runReportToPdf("tset.jasper", hm, conn);
        sendPDF(response, bytes, "report.pdf");         

    } catch (JRException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }

        void sendPDF(HttpServletResponse response, byte[] bytes, String name) throws IOException
    {
        ServletOutputStream stream = null;

        stream = response.getOutputStream();
        response.setContentType("application/pdf");
        response.addHeader("Content-Type", "application/pdf");
        response.addHeader("Content-Disposition", "inline; filename=" + name);
        response.setContentLength((int) bytes.length);
        stream.write(bytes);
        stream.close();
    } 
}  
Was it helpful?

Solution

You have placed the war at incorrect location.

C:\apache-tomcat-7.0.40\webapps\test\war

Place all the content of war folder directly under C:\apache-tomcat-7.0.40\webapps\test folder and remove extra war folder.

For more info have a look at Developing a Web Appliction on Tomcat

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top