Обход преобразователей представления grails?

#java #grails #spring-mvc #portlet #liferay

#java #grails #spring-mvc #портлет #liferay

Вопрос:

Я пытаюсь создать портлет в приложении grails, и я создал простой расширяемый контроллер AbstractController , который возвращает

new ModelAndView('myportlet') От handleRequestInternal . У меня также есть стандартная Jstl view resolver настройка для /WEB-INF/jsp , но независимо от того, что я пытаюсь, когда я пытаюсь просмотреть портлет в liferay, я получаю следующую трассировку стека:

 13:19:39,723 ERROR [DispatcherPortlet:559] Could not complete request
java.lang.ClassCastException: org.springframework.web.portlet.context.PortletRequestAttributes cannot be cast to org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequest
    at org.codehaus.groovy.grails.web.util.WebUtils.retrieveGrailsWebRequest(WebUtils.java:497)
    at org.codehaus.groovy.grails.web.servlet.view.GrailsViewResolver.loadView(GrailsViewResolver.java:87)
    at org.codehaus.groovy.grails.scaffolding.view.ScaffoldingViewResolver.loadView(ScaffoldingViewResolver.java:61)
    at org.springframework.web.servlet.view.AbstractCachingViewResolver.createView(AbstractCachingViewResolver.java:158)
    at org.springframework.web.servlet.view.UrlBasedViewResolver.createView(UrlBasedViewResolver.java:384)
    at org.springframework.web.servlet.view.AbstractCachingViewResolver.resolveViewName(AbstractCachingViewResolver.java:77)
    at org.springframework.web.portlet.DispatcherPortlet.resolveViewName(DispatcherPortlet.java:1110)
  

Кажется, что если бы я мог обойти GrailsViewResolver , я смог бы запустить свой портлет, как в обычном приложении spring.

Я использую liferay 6, поэтому плагин grails liferay не подходит. Могу ли я что-нибудь сделать, чтобы убедиться, что GrailsViewResolver не пытается разрешить мое представление в /WEB-INF/jsp ?

Комментарии:

1. Не могли бы вы, пожалуйста, поделиться своим web.xml , portlet.xml и какой-либо другой конфигурационный xml вы используете для своего портлета? кажется, какая-то проблема с конфигурацией. не видя их, я не могу сказать многого. 🙁

Ответ №1:

Если вы используете Grails, используйте его на 100% и не пытайтесь смешивать совершенно разные технологии. Это избавит вас от лишних хлопот в долгосрочной перспективе.