diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java index 1f7718cdffa73323307903b6ee29025bf8d4df0f..ca76456f4aded30a59f3d7430e39246cdc116813 100644 --- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java +++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java @@ -57,6 +57,11 @@ public class FormatResponseFilter implements Filter protected Subsurvey[] dbSubsurveyArr = null; private String reqQueryString; + protected void doUsageError(String message, PrintWriter printWriter) + { + printWriter.println("UsageError : " + message); + } + @Override public void init(FilterConfig filterConfig) throws ServletException @@ -76,17 +81,12 @@ public class FormatResponseFilter implements Filter { LOGGER.info("trace"); LOGGER.info("REQUEST START ============================================================================================="); - - Map<String, String[]> params = request.getParameterMap(); - //for(String keys : params.keySet()) LOGGER.info("Params: " + keys); - Coord coord = new Coord(params); - SubsurveyId subsurveyId = new SubsurveyId(params); - // FIXME add invalid param excpetions FormatResponseWrapper responseWrapper = new FormatResponseWrapper((HttpServletResponse) response); chain.doFilter(request, responseWrapper); + long startTime_msec = System.currentTimeMillis(); String[] pubdidArr = responseWrapper.getPubdidArr(); @@ -95,6 +95,12 @@ public class FormatResponseFilter implements Filter { PrintWriter responseWriter = ((HttpServletResponse)response).getWriter(); + Map<String, String[]> params = request.getParameterMap(); + Coord coord = new Coord(params); + SubsurveyId subsurveyId = new SubsurveyId(params); + // FIXME add invalid param excpetions -> params already parsed in servlet + + Dataset[] datasetArr = queryObsCore( pubdidArr, coord,// VLKB: calc ovelrap-codes @@ -126,15 +132,18 @@ public class FormatResponseFilter implements Filter } else { - ; // FIXME throws wrong setting-file param: batter convert string to enum and throw 'unrecoginzed respFormat' then; - // here use switch with enums and switch-default: say error: 'unsupported respFromat' type + final String errMsg = "Illegal response format request: " + respFormat; + LOGGER.info(errMsg); + response.setContentType("text/plain"); + doUsageError(errMsg, responseWriter); + // FIXME set http err code } responseWriter.close(); } else { - LOGGER.info("Servlet returned no ID's."); + LOGGER.info("SearchServlet returned no ID's."); } LOGGER.info("REQUEST END ============================================================================================="); diff --git a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java index 86e13c22be05c58f90e78b3f97c3a02960143fb1..06ef4ed80e2c7f615bfbbfd89afea2272624773c 100644 --- a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java +++ b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java @@ -99,7 +99,6 @@ public class SearchServlet extends javax.servlet.http.HttpServlet response.setContentType("text/plain"); response.setCharacterEncoding(RESPONSE_ENCODING); - //PrintWriter writer = response.getWriter(); for(String pubdid : pubdidArr) { @@ -114,7 +113,6 @@ public class SearchServlet extends javax.servlet.http.HttpServlet response.setStatus(HttpServletResponse.SC_BAD_REQUEST); response.setContentType("text/plain"); - //PrintWriter writer = new PrintWriter(new OutputStreamWriter(respOutputStream, RESPONSE_ENCODING)); doMultiValuedParamNotSupported(ex.getMessage(), writer); writer.close(); @@ -125,7 +123,6 @@ public class SearchServlet extends javax.servlet.http.HttpServlet response.setStatus(HttpServletResponse.SC_BAD_REQUEST); response.setContentType("text/plain"); - //PrintWriter writer = new PrintWriter(new OutputStreamWriter(respOutputStream, RESPONSE_ENCODING)); doUsageError(ex.getMessage(), writer); writer.close(); @@ -137,7 +134,6 @@ public class SearchServlet extends javax.servlet.http.HttpServlet response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); response.setContentType("text/plain"); - //PrintWriter writer = new PrintWriter(new OutputStreamWriter(respOutputStream, RESPONSE_ENCODING)); doError(ex.toString(), writer); writer.close();