вторник, 16 октября 2012 г.

Eclipse: нет пункта меню Debug As → Debug on Server

Создаю новый веб-проект с использованием Maven. И вот кульминационный момент — первый запуск на отладку. Однако в меню "Debug As" соответствующей опции ("Debug on Server") не вижу...

В этом конкретном случае проблема решилась добавлением  <packaging>war</packaging> в pom.xml. Добавил, нажал "Maven → Update Project...", и после этого нужный пункт меню Debug появился.

Но подозреваю, что могут быть и другие причины такой штуки.

вторник, 9 октября 2012 г.

Java, URL Encoding и пробелы.

Часто встречается задача: закодировать в URL Encoding строку с пробелами. Стандартный метод делает это не так, как хотелось бы.
java.net.URLEncoder.encode кодирует строку в соответствии со стандартом HTML 4.01, который предписывает заменять символ пробела на "+", а не на "%20", как предписывает RFC3986.
(Источник)

В Spring'е есть простое решение проблемы — класс org.springframework.web.util.UriUtils с методами для кодирования урлов и параметров. Они работают правильно.

Замечу, что если надо обработать не полный урл, а только один из параметров, следует использовать метод UriUtils.encodeQueryParam. Поскольку UriUtils.encodeURI для строки "2012:10:05", например, возвращает "2012:/10:05", видимо, по-особому интерпретируя первое двоеточие.