Reputation: 374
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();
}
}
Upvotes: 0
Views: 97
Reputation: 46841
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
Upvotes: 1