Fala pessoal, blz?
Estou gerando PDF desta URL:
Acesso pelo browser e ele me gera o HTML perfeito. Agora, para baixar o PDF disto, acesso outra URL:
Onde tenho esse código no PdfController:
public void job(Long projetoId)
{
Html2Pdf html2pdf = new Html2Pdf();
try
{
response.setContentType("application/pdf");
URL url = new URL("http://localhost:8080/Sigo/pdf/gerar/job?projetoId=" + Long.toString(projetoId));
URLConnection urlConn = url.openConnection();
InputStream is = urlConn.getInputStream();
OutputStream out = response.getOutputStream();
html2pdf.convert(is, out);
out.close();
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} catch (DocumentException e)
{
e.printStackTrace();
}
}
O problema é: estou com lazy no hibernate, então, quando acesso pelo browser (primeira URL), o HTML é gerado perfeitamente. Ao acessar o controller que irá gerar o PDF, acesso a URL pela classe URL do Java, para poder utilizar os streams de in/out e gerar o PDF. Dessa forma, não tenho sessão inicializada acessando por new URL(), então o PDF não é gerado corretamente.
Como posso solucionar isso?
Estou usando VRaptor + Hibernate + Velocity + iText + Flying Saucer + jTidy
abs!