Author: michiel Date: 2009-08-10 10:04:59 +0200 (Mon, 10 Aug 2009) New Revision: 37630
Modified: speeltuin/mihxil/webservice/mmbase/src/main/java/org/mmbase/webservice/WebServiceServlet.java Log: added a small new feature, a 'default webservice' which can be presented if no explicit ws is specified on the URL (e.g. return a list of available webservices) Modified: speeltuin/mihxil/webservice/mmbase/src/main/java/org/mmbase/webservice/WebServiceServlet.java =================================================================== --- speeltuin/mihxil/webservice/mmbase/src/main/java/org/mmbase/webservice/WebServiceServlet.java 2009-08-10 07:49:02 UTC (rev 37629) +++ speeltuin/mihxil/webservice/mmbase/src/main/java/org/mmbase/webservice/WebServiceServlet.java 2009-08-10 08:04:59 UTC (rev 37630) @@ -40,6 +40,8 @@ protected String authenticate = "name/password"; + protected String defaultService = "list.xml"; + @Override protected Map<String, Integer> getAssociations() { Map<String, Integer> a = super.getAssociations(); @@ -47,6 +49,16 @@ return a; } + + @Override + public void init() throws ServletException { + super.init(); + String df = getInitParameter("defaultService"); + if (df != null && df.length() > 0) { + defaultService = df; + } + } + private Cloud anonymous; protected Cloud getAnonymousCloud() { @@ -117,12 +129,19 @@ protected void doWebService(final HttpServletRequest req, final HttpServletResponse res, final WebService.Type defaultType) throws ServletException, IOException { - String[] path = req.getPathInfo().split("/"); + WebService.Type type; + String file; + { + String[] path = req.getPathInfo().split("/"); + if (path.length > 1) { + type = path.length > 2 ? WebService.Type.valueOf(path[1]) : defaultType; + file = path.length > 2 ? path[2] : path[1]; + } else { + type = WebService.Type.GET; + file = defaultService; + } + } - WebService.Type type = path.length > 2 ? WebService.Type.valueOf(path[1]) : defaultType; - - String file = path.length > 2 ? path[2] : path[1]; - String wantedMimeType = getServletContext().getMimeType(file); if (wantedMimeType == null) { res.sendError(HttpServletResponse.SC_NOT_FOUND, "No mimetype found for '" + file + "'"); _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs