Skip to content
Snippets Groups Projects
Commit 05a9f19f authored by Robert Butora's avatar Robert Butora
Browse files

adds VO error handling to SearchServlet

parent a513bf04
No related branches found
No related tags found
No related merge requests found
...@@ -78,7 +78,7 @@ public class FormatResponseFilter implements Filter ...@@ -78,7 +78,7 @@ public class FormatResponseFilter implements Filter
LOGGER.info("REQUEST START ============================================================================================="); LOGGER.info("REQUEST START =============================================================================================");
Map<String, String[]> params = request.getParameterMap(); Map<String, String[]> params = request.getParameterMap();
for(String keys : params.keySet()) LOGGER.info("Params: " + keys); //for(String keys : params.keySet()) LOGGER.info("Params: " + keys);
Coord coord = new Coord(params); Coord coord = new Coord(params);
SubsurveyId subsurveyId = new SubsurveyId(params); SubsurveyId subsurveyId = new SubsurveyId(params);
// FIXME add invalid param excpetions // FIXME add invalid param excpetions
...@@ -89,15 +89,15 @@ public class FormatResponseFilter implements Filter ...@@ -89,15 +89,15 @@ public class FormatResponseFilter implements Filter
long startTime_msec = System.currentTimeMillis(); long startTime_msec = System.currentTimeMillis();
PrintWriter responseWriter = ((HttpServletResponse)response).getWriter(); String[] pubdidArr = responseWrapper.getPubdidArr();
if (true) if ((pubdidArr != null) && (pubdidArr.length > 0))
//if (responseWrapper.getContentType().contains("text/plain"))
{ {
PrintWriter responseWriter = ((HttpServletResponse)response).getWriter();
Dataset[] datasetArr = queryObsCore( Dataset[] datasetArr = queryObsCore(
responseWrapper.getPubdidArr(), pubdidArr,
coord,// VLKB: calc ovelrap-code in Spectrum coord,// VLKB: calc ovelrap-codes
settings.serviceUrls.cutoutUrl()); settings.serviceUrls.cutoutUrl());
SearchOutputData searchOutputData = SearchOutputData.marshall( SearchOutputData searchOutputData = SearchOutputData.marshall(
...@@ -132,6 +132,11 @@ public class FormatResponseFilter implements Filter ...@@ -132,6 +132,11 @@ public class FormatResponseFilter implements Filter
responseWriter.close(); responseWriter.close();
} }
else
{
LOGGER.info("Servlet returned no ID's.");
}
LOGGER.info("REQUEST END ============================================================================================="); LOGGER.info("REQUEST END =============================================================================================");
} }
......
public class MultiValuedParamNotSupported extends IllegalArgumentException {
public MultiValuedParamNotSupported(String errorMessage){//, Throwable err) {
super(errorMessage);//, err);
}
}
...@@ -32,12 +32,29 @@ public class SearchServlet extends javax.servlet.http.HttpServlet ...@@ -32,12 +32,29 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
LOGGER.info("DB : " + settings.dbConn.toString()); LOGGER.info("DB : " + settings.dbConn.toString());
} }
protected void doMultiValuedParamNotSupported(String message, PrintWriter printWriter)
{
printWriter.println("MultiValuedParamNotSupported : " + message);
}
protected void doUsageError(String message, PrintWriter printWriter)
{
printWriter.println("UsageError : " + message);
}
protected void doError(String message, PrintWriter printWriter)
{
printWriter.println("Error : " + message);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, UnsupportedEncodingException throws ServletException, IOException, UnsupportedEncodingException
{ {
LOGGER.info("trace"); LOGGER.info("trace");
PrintWriter writer = response.getWriter();
long startTime_msec = System.currentTimeMillis(); long startTime_msec = System.currentTimeMillis();
legacyLogEntry(request); legacyLogEntry(request);
...@@ -82,7 +99,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet ...@@ -82,7 +99,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
response.setContentType("text/plain"); response.setContentType("text/plain");
response.setCharacterEncoding(RESPONSE_ENCODING); response.setCharacterEncoding(RESPONSE_ENCODING);
PrintWriter writer = response.getWriter(); //PrintWriter writer = response.getWriter();
for(String pubdid : pubdidArr) for(String pubdid : pubdidArr)
{ {
...@@ -91,6 +108,50 @@ public class SearchServlet extends javax.servlet.http.HttpServlet ...@@ -91,6 +108,50 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
writer.close(); writer.close();
} }
} }
catch(MultiValuedParamNotSupported ex)
{
LOGGER.info("MultiValuedParamNotSupported: " + ex.getMessage());
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();
}
catch(IllegalArgumentException ex)
{
LOGGER.info("IllegalArgumentException: " + ex.getMessage());
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();
}
catch(Exception ex)
{
LOGGER.info("Exception: " + ex.getMessage());
ex.printStackTrace();
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();
}
finally
{
//writer.close();
}
/*
catch (IllegalArgumentException illArg) catch (IllegalArgumentException illArg)
{ {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, response.sendError(HttpServletResponse.SC_BAD_REQUEST,
...@@ -102,7 +163,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet ...@@ -102,7 +163,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
LOGGER.info("Exception: " + ex.getMessage()); LOGGER.info("Exception: " + ex.getMessage());
ex.printStackTrace(); ex.printStackTrace();
} }
*/
return; return;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment