"Конечно, существует лучший путь!"
нет. Спецификации сервлета (Спецификация 2.4 Сервлета Java, "Файлы Приветствия SRV.9.10", например) состояние:
цель этого механизма состоит в том, чтобы позволить устройству развертывания определять заказанный список частичного URIs для контейнера для использования для добавления для URIs, когда существует запрос на URI, который соответствует записи каталога в ВОЙНЕ, не отображенной на веб-компоненте.
Вы не можете отобразить Struts на '/', потому что Struts отчасти требует для работы с расширением файла. Таким образом, Вас оставляют использовать отображенный компонент implicitely, такой как JSP или статический файл. Всеми другими решениями являются просто взломы. Поэтому сохраните свое решение, это совершенно читаемо и удобно в сопровождении, не потрудитесь смотреть далее.
Поместите в кавычки имя символа после двоеточия, например,
assert_throws(:"SemanticText::ExtractionFailed") { unit.extract_from('5 x 2005')}
Кавычки необходимы для символа который содержит двоеточия или другие специальные символы.
Если вы попробуете : "SemanticText :: ExtractionFailed" .class
в irb, вы увидите, что это символ
, устраняя необходимость в используйте to_s
и / или to_sym
.