Mercurial > dive4elements > gnv-client
diff gnv/src/main/java/de/intevation/gnv/action/DoOutputAction.java @ 34:25fdec8b4c69
Added Global Errorhandling to the GNV-Client
gnv/trunk@170 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Fri, 02 Oct 2009 08:38:57 +0000 |
parents | 07e9c137a2f1 |
children | 4405f31bbc30 |
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/action/DoOutputAction.java Mon Sep 28 10:36:08 2009 +0000 +++ b/gnv/src/main/java/de/intevation/gnv/action/DoOutputAction.java Fri Oct 02 08:38:57 2009 +0000 @@ -52,48 +52,54 @@ HttpServletRequest request, HttpServletResponse response) throws Exception { log.debug("DoOutputAction.execute"); - String target = request.getParameter("target"); - String mimeType = request.getParameter("mimetype"); - - log.debug("Target: "+target); - log.debug("MimeType: "+mimeType); - - // TODO Check if is propper; - - SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request); - OutputMode outputMode = sm.getOutputMode(target); - if (outputMode != null && outputMode.getMimeType().equals(mimeType)){ - Collection<OutputParameter> inputParameter =outputMode.getOutputParameters(); - Collection<InputParameter> ips = null; - if (inputParameter != null){ - ips = new ArrayList<InputParameter>(inputParameter.size()); - Iterator<OutputParameter> it = inputParameter.iterator(); - while (it.hasNext()){ - String name = it.next().getName(); - String[] values = request.getParameterValues(name); - InputParameter ip = new DefaultInputParameter(name, values); - ips.add(ip); + try { + String target = request.getParameter("target"); + String mimeType = request.getParameter("mimetype"); + + log.debug("Target: "+target); + log.debug("MimeType: "+mimeType); + + // TODO Check if is propper; + + SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request); + OutputMode outputMode = sm.getOutputMode(target); + if (outputMode != null && outputMode.getMimeType().equals(mimeType)){ + Collection<OutputParameter> inputParameter =outputMode.getOutputParameters(); + Collection<InputParameter> ips = null; + if (inputParameter != null){ + ips = new ArrayList<InputParameter>(inputParameter.size()); + Iterator<OutputParameter> it = inputParameter.iterator(); + while (it.hasNext()){ + String name = it.next().getName(); + String[] values = request.getParameterValues(name); + InputParameter ip = new DefaultInputParameter(name, values); + ips.add(ip); + } } + + ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient(); + + this.setHeaders(target, mimeType, response, request); + + OutputStream outputStream = response.getOutputStream(); + adc.doOutput(sm.getSelectedArtifactFactory(), sm.getCurrentArtifact(), outputStream, target, mimeType, ips); + + outputStream.flush(); + outputStream.close(); + }else{ + if (outputMode == null){ + log.error("Outputmode wird nicht unterstützt."); + }else if (!outputMode.getMimeType().equals(mimeType)){ + log.error("MimeType "+mimeType+" wird nicht unterstützt."); + } + // TODO FIXME: Fehlerbehandlung } - - ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient(); - - this.setHeaders(target, mimeType, response, request); - - OutputStream outputStream = response.getOutputStream(); - adc.doOutput(sm.getSelectedArtifactFactory(), sm.getCurrentArtifact(), outputStream, target, mimeType, ips); - - outputStream.flush(); - outputStream.close(); - }else{ - if (outputMode == null){ - log.error("Outputmode wird nicht unterstützt."); - }else if (!outputMode.getMimeType().equals(mimeType)){ - log.error("MimeType "+mimeType+" wird nicht unterstützt."); - } - // TODO FIXME: Fehlerbehandlung + return super.execute(mapping, form, request, response); + } catch (Exception e) { + log.error(e,e); + request.setAttribute(CommunicationKeys.REQUEST_EXCEPTION_MESSAGE_ID, e.getMessage()); + return super.getExceptionForward(mapping); } - return super.execute(mapping, form, request, response); } protected void setHeaders(String target, String mimeType, HttpServletResponse response, HttpServletRequest request){