Несколько советов ...
Вы, вероятно, должны выяснить, где выводится ошибка вашей программы.
Как правило, при запуске вещей в контейнере сервлетов (tomcat?) Сервер записывает stdout и stderr в файлы (может быть, в журналах?). Также выясните, как сервер приложений / контейнер регистрирует исключения.
Возможно, вам следует сначала попробовать запустить свой код как обычное Java-приложение.
При отлове исключения, вероятно, хорошей идеей будет использование каркаса ведения журнала для регистрации исключения. Подойдет или log4j, или java.util.logging.
... или - просто для тестирования, сделайте исключение.printStackTrace (), чтобы вы получили полное
информация.
Кроме того, запрос SQL не годится ... Посмотрите PreparedStatement для динамических параметров.
if( city_name == null ) {
//return nothing?
} else {
PreparedStatement pstmt = con.prepareStatement("SELECT city_id, city_name FROM city WHERE city_name = ?");
pstmt.setString(1, city_name); ///
ResultSet rs = stmt.executeQuery();
}