我正在尝试从 portlet B 调用 XXXLocalServiceUtil 的方法,该方法已使用服务构建器在 portlet A 上创建。我在 portlet B 的 /WEB-INF/lib 中导入了完全相同的 portlet A jar,但在日志中似乎抛出了 ClassNotFoundException。有任何想法吗?
Blockquote 13:04:25,904 错误 [http-bio-8080-exec-77][render_portlet_jsp:132] null java.lang.RuntimeException: java.lang.ClassNotFoundException 不是 com.liferay.custom.action.service 的有效异常.AuditUserLocalServiceClp.addAuditUser(AuditUserLocalServiceClp.java:763) 在 com.liferay.custom.action.service.AuditUserLocalServiceUtil.addAuditUser(AuditUserLocalServiceUtil.java:287) 在 com.liferay.calendar.listeners.CalendarBookingListener.onAfterCreate(CalendarBookingListener.java:73) ) 在 com.liferay.portal.model.BaseModelListener.onAfterCreate(BaseModelListener.java:1) 在 com.liferay.portal.service.persistence 的 com.liferay.calendar.listeners.CalendarBookingListener.onAfterCreate(CalendarBookingListener.java:1)。 impl.BasePersistenceImpl.update(BasePersistenceImpl.java:337) 在 com.liferay.portal。dao.shard.advice.ShardPersistenceAdvice.invoke(ShardPersistenceAdvice.java:54) 在 com.liferay.calendar.service.impl.CalendarBookingLocalServiceImpl.addCalendarBooking(CalendarBookingLocalServiceImpl.java:174) 在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation。在 com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62) 在 com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51) 继续(ServiceBeanMethodInvocation.java:115)在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 在 com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 在 com.liferay.portal.spring .aop.ServiceBeanMethodInvocation。在 com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 继续(ServiceBeanMethodInvocation.java:111)在 com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 在 com.liferay.portal.spring .aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) BlockquoteServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 在 com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java: 111) 在 com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) BlockquoteServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 在 com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java: 111) 在 com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) Blockquote在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 处调用(ChainableMethodAdvice.java:56) 块引用在 com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 处调用(ChainableMethodAdvice.java:56) 块引用