У меня есть это в src/main/groovy/...
package com.mycompany.web;
// imports....
@Controller
class GroovyController {
@RequestMapping("/status_groovy")
public @ResponseBody String getStatus() {
return "Hello World from groovy!";
}
}
Использую maven 3 и spring 3.1 (Milestone). Spring MVC отлично работает для java контроллеров и все настроено хорошо. Класс groovy компилируется нормально и может быть найден в каталоге classes
вместе с классами java-контроллеров.
У меня есть похожий контроллер, написанный на java (JavaController) в том же пакете, но в src/main/java, и он правильно подхватывается spring и mapped, и я могу видеть ответ на экране, когда я нажимаю на url.
package com.mycompany.web;
// imports....
@Controller
class JavaController {
@RequestMapping("/status")
public @ResponseBody String getStatus() {
return "Hello World!";
}
}
Jetty запускается нормально без ошибок в журнале, но я не вижу, чтобы groovy url был отображен, в то время как я вижу java url.
2011-09-23 16:05:50,412 [main] INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/status],methods=[],params=[],headers=[],consumes=[],produces=[]}" onto public java.lang.String com.mycompany.web.JavaController.getStatus()
Все настройки в порядке, так как другие части приложения работают отлично с аннотациями (component-scan и т.д.), просто я не могу получить отображение url в GroovyController
Может ли кто-нибудь объяснить, что нужно сделать, чтобы Controller
ы, написанные на groovy, работали?
PS: Я избегаю GroovyServlet для запуска скриптов, потому что он имеет большие недостатки, когда дело доходит до инъекции бобов и отображения путей url.