我正在尝试在grails应用程序中构建Portlet,并且创建了一个简单的控制器,AbstractController该控制器扩展了返回
AbstractController
new ModelAndView('myportlet')来自handleRequestInternal。我也有一个标准的Jstl view resolver设置,/WEB-INF/jsp但是无论尝试什么,当我尝试在liferay中查看portlet时,都会得到以下stacktrace:
new ModelAndView('myportlet')
handleRequestInternal
Jstl view resolver
/WEB-INF/jsp
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应用程序中一样启动并运行Portlet。
GrailsViewResolver
我正在使用liferay 6,因此grails liferay插件不是一个选择。我可以做些什么来确保GrailsViewResolver不会尝试解析我的视图/WEB-INF/jsp?
如果您使用的是Grails,请100%使用它,不要尝试混合各种不同的技术。从长远来看,它将节省您的痛苦。