gra*_*hey 5 grails portal portlet liferay liferay-6
我使用Grails 2.0.4,Portlets Plugin 0.9.2和Liferay Portlets Plugin 0.4创建了一个自定义的Liferay 6.2 portlet .
部署portlet后,我收到一个奇怪的错误.这是发生的事情:
日志表明以下错误:
com.liferay.portal.NoSuchResourceActionException: <Portlet>_WAR_<PortletApp>#VIEW
Run Code Online (Sandbox Code Playgroud)
我见过其他情况,其中"#VIEW"表示"#ADD_TO_PAGE".请注意,portlet正在部署并在我用于开发的Liferay 6.2的香草版本上正常工作.
有谁知道这个问题可能是什么?谢谢.
堆栈跟踪:
Jan 16, 2014 10:42:40 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
com.liferay.portal.NoSuchResourceActionException: <Portlet>_WAR_<PortletApp>#VIEW
at com.liferay.portal.service.impl.ResourceActionLocalServiceImpl.getResourceAction(ResourceActionLocalServiceImpl.java:196)
at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
at com.sun.proxy.$Proxy85.getResourceAction(Unknown Source)
at com.liferay.portal.service.impl.ResourcePermissionLocalServiceImpl.doUpdateResourcePermission(ResourcePermissionLocalServiceImpl.java:1190)
at com.liferay.portal.service.impl.ResourcePermissionLocalServiceImpl.updateResourcePermission(ResourcePermissionLocalServiceImpl.java:1312)
at com.liferay.portal.service.impl.ResourcePermissionLocalServiceImpl.setOwnerResourcePermissions(ResourcePermissionLocalServiceImpl.java:1038)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
Run Code Online (Sandbox Code Playgroud)

问题最终出现在堆栈跟踪的更高位置。我收到以下错误:
net.sf.ehcache.CacheException: Unable to load class net.sf.ehcache.store.DefaultElementValueComparator
Run Code Online (Sandbox Code Playgroud)
我能够通过阅读此链接解决该问题。以下是我采取的步骤:
$liferay_home/tomcat/webapps/ROOT/WEB-INF/lib/$liferay_home目录)ClassLoaderUtil.class文件复制到文件夹的net/sf/ehcache/util/目录中,替换当前ClassLoaderUtil.class文件。$liferay_home/tomcat/webapps/ROOT/WEB-INF/lib/,替换当前的 ehcache.jar