@Override
public Object read(Object req, Map kvp, Map rawKvp) throws Exception {
GetFeatureInfoRequest request = (GetFeatureInfoRequest) super.read(req, kvp, rawKvp);
request.setRawKvp(rawKvp);
request.setQueryLayers(new MapLayerInfoKvpParser("QUERY_LAYERS", wms).parse((String) rawKvp
.get("QUERY_LAYERS")));
if (request.getQueryLayers() == null || request.getQueryLayers().size() == 0) {
throw new ServiceException("No QUERY_LAYERS has been requested, or no "
+ "queriable layer in the request anyways");