NIHVIVO-1461 When template not found, propagate error message up the call stack
This commit is contained in:
parent
16a9c32872
commit
34f042bc87
7 changed files with 105 additions and 46 deletions
|
@ -29,6 +29,7 @@ import org.apache.commons.logging.LogFactory;
|
||||||
import edu.cornell.mannlib.vitro.webapp.ConfigurationProperties;
|
import edu.cornell.mannlib.vitro.webapp.ConfigurationProperties;
|
||||||
import edu.cornell.mannlib.vitro.webapp.beans.Portal;
|
import edu.cornell.mannlib.vitro.webapp.beans.Portal;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessingHelper.TemplateProcessingException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
|
@ -255,7 +256,12 @@ public class ContactMailController extends FreemarkerHttpServlet {
|
||||||
email.put("referrer", UrlBuilder.urlDecode(originalReferer));
|
email.put("referrer", UrlBuilder.urlDecode(originalReferer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
return processTemplateToString(template, email, config, request);
|
return processTemplateToString(template, email, config, request);
|
||||||
|
} catch (TemplateProcessingException e) {
|
||||||
|
log.error("Error processing email text through template: " + e.getMessage(), e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeBackupCopy(PrintWriter outFile, String msgText,
|
private void writeBackupCopy(PrintWriter outFile, String msgText,
|
||||||
|
@ -273,10 +279,14 @@ public class ContactMailController extends FreemarkerHttpServlet {
|
||||||
|
|
||||||
backup.put("msgText", msgText);
|
backup.put("msgText", msgText);
|
||||||
|
|
||||||
|
try {
|
||||||
String backupText = processTemplateToString(template, backup, config, request);
|
String backupText = processTemplateToString(template, backup, config, request);
|
||||||
outFile.print(backupText);
|
outFile.print(backupText);
|
||||||
outFile.flush();
|
outFile.flush();
|
||||||
//outFile.close();
|
//outFile.close();
|
||||||
|
} catch (TemplateProcessingException e) {
|
||||||
|
log.error("Error processing backup text throug template: " + e.getMessage(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessage(Session s, String webuseremail, String webusername,
|
private void sendMessage(Session s, String webuseremail, String webusername,
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessingHelper.TemplateProcessingException;
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -45,7 +46,12 @@ public class FreemarkerComponentGenerator extends FreemarkerHttpServlet {
|
||||||
|
|
||||||
private String get(String templateName, Map<String, Object> root, Configuration config, HttpServletRequest request) {
|
private String get(String templateName, Map<String, Object> root, Configuration config, HttpServletRequest request) {
|
||||||
templateName += ".ftl";
|
templateName += ".ftl";
|
||||||
|
try {
|
||||||
return processTemplate(templateName, root, config, request).toString();
|
return processTemplate(templateName, root, config, request).toString();
|
||||||
|
} catch (TemplateProcessingException e) {
|
||||||
|
log.error("Error processing template " + templateName + ": " + e.getMessage(), e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getHead(String templateName, Map<String, Object> root, Configuration config, HttpServletRequest request) {
|
private String getHead(String templateName, Map<String, Object> root, Configuration config, HttpServletRequest request) {
|
||||||
|
|
|
@ -25,6 +25,7 @@ import edu.cornell.mannlib.vitro.webapp.config.RevisionInfoBean;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.ContactMailServlet;
|
import edu.cornell.mannlib.vitro.webapp.controller.ContactMailServlet;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessingHelper.TemplateProcessingException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ExceptionResponseValues;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ExceptionResponseValues;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ForwardResponseValues;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ForwardResponseValues;
|
||||||
|
@ -96,6 +97,8 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
|
|
||||||
doResponse(vreq, response, responseValues);
|
doResponse(vreq, response, responseValues);
|
||||||
|
|
||||||
|
} catch (TemplateProcessingException e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
log.error("FreeMarkerHttpServlet could not forward to view.", e);
|
log.error("FreeMarkerHttpServlet could not forward to view.", e);
|
||||||
}
|
}
|
||||||
|
@ -135,7 +138,8 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void doResponse(VitroRequest vreq, HttpServletResponse response, ResponseValues values) {
|
protected void doResponse(VitroRequest vreq, HttpServletResponse response,
|
||||||
|
ResponseValues values) throws TemplateProcessingException {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
int statusCode = values.getStatusCode();
|
int statusCode = values.getStatusCode();
|
||||||
|
@ -159,10 +163,10 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("IOException in doResponse()", e);
|
log.error("IOException in doResponse()", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void doTemplate(VitroRequest vreq, HttpServletResponse response, ResponseValues values) {
|
protected void doTemplate(VitroRequest vreq, HttpServletResponse response,
|
||||||
|
ResponseValues values) throws TemplateProcessingException {
|
||||||
|
|
||||||
Configuration config = getConfig(vreq);
|
Configuration config = getConfig(vreq);
|
||||||
|
|
||||||
|
@ -229,7 +233,8 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
values.getModel().write( response.getOutputStream(), format );
|
values.getModel().write( response.getOutputStream(), format );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void doException(VitroRequest vreq, HttpServletResponse response, ResponseValues values) {
|
protected void doException(VitroRequest vreq, HttpServletResponse response,
|
||||||
|
ResponseValues values) throws TemplateProcessingException {
|
||||||
// Log the error, and display an error message on the page.
|
// Log the error, and display an error message on the page.
|
||||||
log.error(values.getException(), values.getException());
|
log.error(values.getException(), values.getException());
|
||||||
TemplateResponseValues trv = TemplateResponseValues.getTemplateResponseValuesFromException((ExceptionResponseValues)values);
|
TemplateResponseValues trv = TemplateResponseValues.getTemplateResponseValuesFromException((ExceptionResponseValues)values);
|
||||||
|
@ -459,31 +464,34 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected StringWriter processTemplate(String templateName, Map<String, Object> map, Configuration config,
|
protected StringWriter processTemplate(String templateName, Map<String, Object> map, Configuration config,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) throws TemplateProcessingException {
|
||||||
TemplateProcessingHelper helper = new TemplateProcessingHelper(config, request, getServletContext());
|
TemplateProcessingHelper helper = new TemplateProcessingHelper(config, request, getServletContext());
|
||||||
return helper.processTemplate(templateName, map);
|
return helper.processTemplate(templateName, map);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected StringWriter processTemplate(ResponseValues values, Configuration config, HttpServletRequest request) {
|
protected StringWriter processTemplate(ResponseValues values, Configuration config,
|
||||||
|
HttpServletRequest request) throws TemplateProcessingException {
|
||||||
return processTemplate(values.getTemplateName(), values.getMap(), config, request);
|
return processTemplate(values.getTemplateName(), values.getMap(), config, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
// In fact, we can put StringWriter objects directly into the data model, so perhaps we should eliminate the processTemplateToString() methods.
|
// In fact, we can put StringWriter objects directly into the data model, so perhaps we should eliminate the processTemplateToString() methods.
|
||||||
protected String processTemplateToString(String templateName, Map<String, Object> map, Configuration config,
|
protected String processTemplateToString(String templateName, Map<String, Object> map, Configuration config,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) throws TemplateProcessingException {
|
||||||
return processTemplate(templateName, map, config, request).toString();
|
return processTemplate(templateName, map, config, request).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String processTemplateToString(ResponseValues values, Configuration config, HttpServletRequest request) {
|
protected String processTemplateToString(ResponseValues values, Configuration config,
|
||||||
|
HttpServletRequest request) throws TemplateProcessingException {
|
||||||
return processTemplate(values, config, request).toString();
|
return processTemplate(values, config, request).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void writePage(Map<String, Object> root, Configuration config, HttpServletRequest request, HttpServletResponse response) {
|
protected void writePage(Map<String, Object> root, Configuration config,
|
||||||
|
HttpServletRequest request, HttpServletResponse response) throws TemplateProcessingException {
|
||||||
writeTemplate(getPageTemplateName(), root, config, request, response);
|
writeTemplate(getPageTemplateName(), root, config, request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void writeTemplate(String templateName, Map<String, Object> map, Configuration config,
|
protected void writeTemplate(String templateName, Map<String, Object> map, Configuration config,
|
||||||
HttpServletRequest request, HttpServletResponse response) {
|
HttpServletRequest request, HttpServletResponse response) throws TemplateProcessingException {
|
||||||
StringWriter sw = processTemplate(templateName, map, config, request);
|
StringWriter sw = processTemplate(templateName, map, config, request);
|
||||||
write(sw, response);
|
write(sw, response);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,21 +33,23 @@ public class TemplateProcessingHelper {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringWriter processTemplate(String templateName, Map<String, Object> map) {
|
public StringWriter processTemplate(String templateName, Map<String, Object> map)
|
||||||
|
throws TemplateProcessingException {
|
||||||
Template template = getTemplate(templateName);
|
Template template = getTemplate(templateName);
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
processTemplate(template, map, sw);
|
processTemplate(template, map, sw);
|
||||||
return sw;
|
return sw;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected StringWriter processTemplate(ResponseValues values) {
|
protected StringWriter processTemplate(ResponseValues values) throws TemplateProcessingException {
|
||||||
if (values == null) {
|
if (values == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return processTemplate(values.getTemplateName(), values.getMap());
|
return processTemplate(values.getTemplateName(), values.getMap());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processTemplate(Template template, Map<String, Object> map, Writer writer) {
|
private void processTemplate(Template template, Map<String, Object> map, Writer writer)
|
||||||
|
throws TemplateProcessingException {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Environment env = template.createProcessingEnvironment(map, writer);
|
Environment env = template.createProcessingEnvironment(map, writer);
|
||||||
|
@ -64,31 +66,43 @@ public class TemplateProcessingHelper {
|
||||||
|
|
||||||
env.process();
|
env.process();
|
||||||
} catch (TemplateException e) {
|
} catch (TemplateException e) {
|
||||||
log.error("Template Exception creating processing environment", e);
|
throw new TemplateProcessingException("TemplateException creating processing environment", e);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("IOException creating processing environment", e);
|
throw new TemplateProcessingException("IOException creating processing environment", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For cases where we need a String instead of a StringWriter. StringWriter objects can be put in the template data model,
|
// For cases where we need a String instead of a StringWriter. StringWriter objects can be put in the template data model,
|
||||||
// but we can use this method from a jsp, for example.
|
// but we can use this method from a jsp, for example.
|
||||||
public String processTemplateToString(String templateName, Map<String, Object> map) {
|
public String processTemplateToString(String templateName, Map<String, Object> map)
|
||||||
|
throws TemplateProcessingException {
|
||||||
return processTemplate(templateName, map).toString();
|
return processTemplate(templateName, map).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String processTemplateToString(ResponseValues values) {
|
protected String processTemplateToString(ResponseValues values)
|
||||||
|
throws TemplateProcessingException {
|
||||||
return processTemplate(values).toString();
|
return processTemplate(values).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Template getTemplate(String templateName) {
|
private Template getTemplate(String templateName) throws TemplateProcessingException {
|
||||||
Template template = null;
|
Template template = null;
|
||||||
try {
|
try {
|
||||||
template = config.getTemplate(templateName);
|
template = config.getTemplate(templateName);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// RY Should probably throw this error instead.
|
throw new TemplateProcessingException("Cannot find template " + templateName, e);
|
||||||
log.error("Cannot get template " + templateName, e);
|
|
||||||
}
|
}
|
||||||
return template;
|
return template;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class TemplateProcessingException extends Exception {
|
||||||
|
|
||||||
|
public TemplateProcessingException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TemplateProcessingException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import edu.cornell.mannlib.vedit.beans.LoginStatusBean;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.edit.Authenticate;
|
import edu.cornell.mannlib.vitro.webapp.controller.edit.Authenticate;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessingHelper.TemplateProcessingException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean.State;
|
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean.State;
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
|
@ -64,9 +65,17 @@ public class LoginTemplateHelper extends LoginTemplateHelperBase {
|
||||||
default:
|
default:
|
||||||
return doTemplate(vreq, showLoginScreen(vreq));
|
return doTemplate(vreq, showLoginScreen(vreq));
|
||||||
}
|
}
|
||||||
|
} catch (TemplateProcessingException e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
return null;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e, e);
|
log.error(e, e);
|
||||||
|
try {
|
||||||
return doTemplate(vreq, showError(e));
|
return doTemplate(vreq, showError(e));
|
||||||
|
} catch (TemplateProcessingException e1) {
|
||||||
|
log.error(e1.getMessage(), e1);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +162,7 @@ public class LoginTemplateHelper extends LoginTemplateHelperBase {
|
||||||
* We processed a response, and want to show a template. Version for JSP
|
* We processed a response, and want to show a template. Version for JSP
|
||||||
* page.
|
* page.
|
||||||
*/
|
*/
|
||||||
private String doTemplate(VitroRequest vreq, TemplateResponseValues values) {
|
private String doTemplate(VitroRequest vreq, TemplateResponseValues values) throws TemplateProcessingException {
|
||||||
// Set it up like FreeMarkerHttpServlet.doGet() would do.
|
// Set it up like FreeMarkerHttpServlet.doGet() would do.
|
||||||
Configuration config = getConfig(vreq);
|
Configuration config = getConfig(vreq);
|
||||||
|
|
||||||
|
|
|
@ -31,9 +31,9 @@ import org.apache.lucene.search.WildcardQuery;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessingHelper.TemplateProcessingException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.flags.PortalFlag;
|
import edu.cornell.mannlib.vitro.webapp.flags.PortalFlag;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.SearchException;
|
import edu.cornell.mannlib.vitro.webapp.search.SearchException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames;
|
import edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.lucene.LuceneIndexFactory;
|
import edu.cornell.mannlib.vitro.webapp.search.lucene.LuceneIndexFactory;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.lucene.LuceneSetup;
|
import edu.cornell.mannlib.vitro.webapp.search.lucene.LuceneSetup;
|
||||||
|
@ -142,10 +142,15 @@ public class AutocompleteController extends FreemarkerHttpServlet{
|
||||||
map.put("results", results);
|
map.put("results", results);
|
||||||
writeTemplate(TEMPLATE_DEFAULT, map, config, request, response);
|
writeTemplate(TEMPLATE_DEFAULT, map, config, request, response);
|
||||||
|
|
||||||
|
} catch (TemplateProcessingException e) {
|
||||||
|
log.error(e, e);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
log.error("AutocompleteController(): " + e);
|
log.error("AutocompleteController(): " + e);
|
||||||
|
try {
|
||||||
doSearchError(map, config, request, response);
|
doSearchError(map, config, request, response);
|
||||||
return;
|
} catch (TemplateProcessingException e1) {
|
||||||
|
log.error(e1.getMessage(), e1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,15 +345,18 @@ public class AutocompleteController extends FreemarkerHttpServlet{
|
||||||
return qp;
|
return qp;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doNoQuery(Map<String, Object> map, Configuration config, HttpServletRequest request, HttpServletResponse response) {
|
private void doNoQuery(Map<String, Object> map, Configuration config, HttpServletRequest request,
|
||||||
|
HttpServletResponse response) throws TemplateProcessingException {
|
||||||
writeTemplate(TEMPLATE_DEFAULT, map, config, request, response);
|
writeTemplate(TEMPLATE_DEFAULT, map, config, request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doFailedSearch(Map<String, Object> map, Configuration config, HttpServletRequest request, HttpServletResponse response) {
|
private void doFailedSearch(Map<String, Object> map, Configuration config, HttpServletRequest request,
|
||||||
|
HttpServletResponse response) throws TemplateProcessingException {
|
||||||
writeTemplate(TEMPLATE_DEFAULT, map, config, request, response);
|
writeTemplate(TEMPLATE_DEFAULT, map, config, request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doSearchError(Map<String, Object> map, Configuration config, HttpServletRequest request, HttpServletResponse response) {
|
private void doSearchError(Map<String, Object> map, Configuration config, HttpServletRequest request,
|
||||||
|
HttpServletResponse response) throws TemplateProcessingException {
|
||||||
// For now, we are not sending an error message back to the client because with the default autocomplete configuration it
|
// For now, we are not sending an error message back to the client because with the default autocomplete configuration it
|
||||||
// chokes.
|
// chokes.
|
||||||
writeTemplate(TEMPLATE_DEFAULT, map, config, request, response);
|
writeTemplate(TEMPLATE_DEFAULT, map, config, request, response);
|
||||||
|
|
|
@ -141,6 +141,7 @@ public class FreemarkerPagedSearchController extends FreemarkerHttpServlet imple
|
||||||
if( ! wasXmlRequested ){
|
if( ! wasXmlRequested ){
|
||||||
super.doGet(request,response);
|
super.doGet(request,response);
|
||||||
}else{
|
}else{
|
||||||
|
try {
|
||||||
VitroRequest vreq = new VitroRequest(request);
|
VitroRequest vreq = new VitroRequest(request);
|
||||||
Configuration config = getConfig(vreq);
|
Configuration config = getConfig(vreq);
|
||||||
ResponseValues rvalues = processRequest(vreq);
|
ResponseValues rvalues = processRequest(vreq);
|
||||||
|
@ -148,6 +149,9 @@ public class FreemarkerPagedSearchController extends FreemarkerHttpServlet imple
|
||||||
response.setCharacterEncoding("UTF-8");
|
response.setCharacterEncoding("UTF-8");
|
||||||
response.setContentType("text/xml;charset=UTF-8");
|
response.setContentType("text/xml;charset=UTF-8");
|
||||||
writeTemplate(rvalues.getTemplateName(), rvalues.getMap(), config, request, response);
|
writeTemplate(rvalues.getTemplateName(), rvalues.getMap(), config, request, response);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e, e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue