Boa Pessoal,
Estou com uma duvida: Como faço para publicar uma aplicação WEB que utiliza o iReport para gerar relatorios?
A Aplicação ja esta publicada e esta funcionando normal, apenas não está acessando os relatorios que são para abrir em PDF pelo Browser. No PC onde estou desenvolvendo abre normal, mas quando publico, aparece essa msg: “format error: not a PDF or corrupted”. e pede para salvar o relatorio em pdf mas com 0KB. 
Segue o Servlet onde esta sendo chamado o relatorio, observem como passei o caminho do relatorio.
public class ServletRelatorios extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
Connection conn = null;
String caminho = "/relatorios/"; // Esse caminho é uma PASTA onde coloquei os .jasper
String relatorio = caminho+"Cidades.jasper";
ServletOutputStream servletOutPurStream = response.getOutputStream();
InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream(relatorio);
try{
Class.forName("com.mysql.jdbc.Driver");
String db="jdbc:mysql://localhost/dbOrdemServico";
conn = (Connection) DriverManager.getConnection(db,"root","");
response.setContentType("application/pdf");
JasperRunManager.runReportToPdfStream(reportStream, servletOutPurStream, new HashMap(),conn);
}catch(ClassNotFoundException ex){
Logger.getLogger(ServletRelatorios.class.getName()).log(Level.SEVERE,null,ex);
}catch(SQLException ex){
Logger.getLogger(ServletRelatorios.class.getName()).log(Level.SEVERE,null,ex);
}catch(JRException e){
Logger.getLogger(ServletRelatorios.class.getName()).log(Level.SEVERE,null,e);
}finally{
servletOutPurStream.flush();
servletOutPurStream.close();
try{
if(conn !=null){
conn.close();
}
}catch(SQLException ex){
Logger.getLogger(ServletRelatorios.class.getName()).log(Level.SEVERE,null,ex);
}
}
.
.
.
Att