class RestController {

    @RequestMapping(value = ADDRESS_URI, method = RequestMethod.GET)
    public @ResponseBody Map<String, Object> address(
            @RequestParam(required = false) String houseNumber,
            @RequestParam String street,
            @RequestParam(required = false) String borough,
            @RequestParam(required = false) String zip) throws Exception
    {
        logger.debug("address[houseNumber='{}', street='{}', borough='{}', zip='{}']", houseNumber, street, borough, zip);
        if (borough == null && zip == null)
        {
            throw new MissingAnyOfOptionalServletRequestParametersException("borough", "zip");
        }
        Map<String, Object> addressMap = new HashMap<String, Object>();
        addressMap.put(ADDRESS_OBJ, this.geosupportService.callFunction1B(houseNumber, street, borough, zip));
        return addressMap;
    }

}