Foros de discusión

Проблема с запуском serveResource из jsp

Elliot Snake, modificado hace 9 años.

Проблема с запуском serveResource из jsp

New Member Mensajes: 8 Fecha de incorporación: 20/11/13 Mensajes recientes
Доброе время суток!

Подскажите, что делаю не так.
Пытаюсь найти решение по генерированию отчетов с помощью Jasper Report

в моем view.jsp запрашиваю GroupId в текстовом поле

<%@include file="init.jsp"%>
<portlet:actionurl name="createUserReports" var="jasperActionURL">
<portlet:param name="jspPage" value="/html/jasperaction/view.jsp" />

</portlet:actionurl>
<aui:form action="<%=jasperActionURL.toString()%>" name="fm" id="fm" method="post">
<h3>Choose data for report</h3>
&lt;% String keyGroupId=null;
%&gt;
<aui:input name="keyGroupId" type="text" value="<%=keyGroupId %>" size="25" />
<aui:button type="submit" name="userReports" value="getUserreports" />
</aui:form>


затем в Контроллере, получаю параметр и отправляю на Render

public void  createUserReports(ActionRequest actionRequest, ActionResponse response)
	throws IOException, PortletException, PortalException, SystemException, JRException, SQLException {
String keyGroupId=ParamUtil.getString(actionRequest, "keyGroupId");
response.setRenderParameter("keyGroupId", keyGroupId);
response.setRenderParameter("jspPage",viewThankYouJSP);
	}


далее view_thank_you.jsp показывает сообщение об успешном действии и должен выполниться скрипт по запуску serveResource

&lt;%@include file="init.jsp" %&gt;


<portlet:renderurl var="jasperActionURL">

<portlet:param name="jspPage" value="/html/jasperaction/view_thank_you.jsp" />
</portlet:renderurl>
 <aui:script>
AUI().use('aui-base','liferay-portlet-url','aui-node', function(A) {
var myResourceURL =Liferay.PortletURL.createResourceURL();
 myResourceURL.setResourceId('getDataResourceURL');
 });
 </aui:script>


вот так выглядит serveResource

public void serveResource(ResourceRequest request, RenderResponse response)
			throws PortletException, IOException {
				
		String resourceId = request.getResourceID();
		if (Validator.isNotNull(resourceId) &amp;&amp; resourceId.length() != 0
				&amp;&amp; resourceId.equalsIgnoreCase("getDataResourceURL")) {
				JasperDesign jasperDesign;
				Map parameters = new HashMap();
				parameters.put("ReportTitle", "Address Report");
				String groupId=null;
				String keyGroupId = request.getParameter("keyGroupId");;
				_log.info("KeyGroupId="+keyGroupId);
				if (keyGroupId=="-1")
				{groupId="NOTNULL";
				}
				else{
					groupId="="+keyGroupId;
				}
				String tmpSqlQuery="SELECT * FROM fin_cost WHERE groupId"+" "+groupId+";";
				parameters.put("SqlQuery",tmpSqlQuery);
				try {
					jasperDesign = JRXmlLoader.load("/home/liferay/Desktop/Blank_A4_Landscape.jrxml");
					JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
					Connection con=DataAccess.getConnection();
					JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters, con);
					JRExporter exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();
					exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
				
					OutputStream os = response.getPortletOutputStream();
					String pdfApplicationFormName = "Test";
					response.setContentType("application/pdf");
					response.setProperty(HttpHeaders.CONTENT_DISPOSITION,"attachement;filename="+pdfApplicationFormName.replaceAll(" ", ""));
					exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, os);
					exporter.exportReport();
					os.flush();
					
				} catch (JRException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				//super.serveResource((ResourceRequest) request, response);
			}
	}


Думаю, что неправильно запускаю скрипт. Но куда копать не понимаю. Помогите, плз!
thumbnail
Alexey Melnikov, modificado hace 9 años.

RE: Проблема с запуском serveResource из jsp

Regular Member Mensajes: 108 Fecha de incorporación: 27/03/12 Mensajes recientes
Тут скорее всего нужно уже спрашивать, как решили свой же собственный вопрос ))

А из вопроса не ясно какая из частей не работает.

Подозреваю, что не вызывался serveResource?
Elliot Snake, modificado hace 9 años.

RE: Проблема с запуском serveResource из jsp

New Member Mensajes: 8 Fecha de incorporación: 20/11/13 Mensajes recientes
Вопрос пока не решен.
Не могу вызвать serveResource из jsp
Нужна помощь