我们在当前的 Glassfish 3.1 集群设置中看到了这个问题。以下是问题的详细信息 - 我们正在运行 Glassfish 3.1 版
- 我们正在运行 liferay 6.0.6
- Liferay 战争部署在 Glassfish 集群上,并且在两个节点上都可以正常工作。
- 同样的 liferay 战争也适用于一台 Tomcat 服务器。
- 当我们在 Glassfish 集群上部署自定义 portlet 时,它会在部署后立即开始工作。(在重新启动 glassfish 集群之前)
- 一旦我们重新启动集群节点,相同的 portlet 应用程序就会停止工作并抱怨并给出附加错误。
- 到目前为止,我的研究表明 java.lang.NoClassDefFoundError: com/liferay/portal/util/PropsValues 是portal-impl.jar 文件的一部分,该文件是liferay 门户的一部分,应该可供我们的portlet 使用。不知何故,重新启动后,jar 文件以不同的方式加载,并且相同的 jar 文件对 portlet 不可用。
- 我们还尝试了 Glassfish 3.1 Bundled liferay 6.1 设置,也看到了同样的问题。
- 根据 liferay 论坛的建议,我们已将 portal-service.jar 和 portlet.jar 放在 [glassfish home]/lib 目录中。
- 当我们对 glassfish 节点实例进程执行 lsof -p pid 时,它显示该进程打开了所需的 jar 文件。不知道为什么这对我们的应用程序不可用。
对于解决/调查此问题的任何帮助或指示,我将不胜感激。
java.lang.NoClassDefFoundError: com/liferay/portal/util/PropsValues
at org.apache.jsp.html.taglib.ui.search_005fiterator.page_jsp._jspService(page_jsp.java from :500)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:113)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:785)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:649)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:604)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:534) at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:323)
at com.liferay.taglib.util.IncludeTag._doInclude(IncludeTag.java:418)
at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:92)
这是我在liferay论坛上的一个相关主题,但我没有真正得到任何人的任何回应。[在liferay论坛上发布了相同的问题]
我还尝试将 portal-impl.jar 放在我的 portlet/WEB-INF/lib 目录中(不推荐这种方式),但我失败了,因为它也需要我将所有其他依赖的 jar 也放入其中。
我现在没有选择余地,正在考虑使用其他第三方库而不是使用 liferay 标签来实现分页功能。
这是给我们错误的特定标签
<liferay-ui:search-iterator />
我的 portlet WEB-INF/lib 文件夹中的 jar 列表
SiebelClientWS-0.0.1-SNAPSHOT.jar spring-asm-3.0.5.RELEASE.jar XmlSchema-1.4.7.jar spring-aspects-3.0.5.RELEASE.jar aspectjrt-1.6.11.jar spring-beans-3.0.5.RELEASE.jar aspectjweaver-1.6.11.jar spring-context-3.0.5.RELEASE.jar axiom-api-1.2.11.jar spring-context-support-3.0.5.RELEASE.jar axiom-impl-1.2.11.jar spring-core-3.0.5.RELEASE.jar axis2-1.5.4.jar spring-expression-3.0.5.RELEASE.jar axis2-kernel-1.5.4.jar spring-jdbc-3.0.5.RELEASE.jar axis2-transport-http-1.5.4.jar spring-tx-3.0.5.RELEASE.jar axis2-transport-local-1.5.4.jar spring-web-3.0.5.RELEASE.jar c3p0-0.9.1.2.jar spring-webmvc-3.0.5.RELEASE.jar commons-codec-1.4.jar spring-webmvc-portlet-3.0.5.RELEASE.jar commons-httpclient-3.1.jar util-bridges.jar commons-logging.jar util-java.jar flexjson-2.1.jar util-taglib.jar httpcore-4.0.jar woden-api-1.0M9.jar httpcore-nio-4.0-beta1.jar woden-impl-commons-1.0M9.jar log4j.jar woden-impl-dom-1.0M9.jar neethi-2.0.2.jar wsdl4j-1.6.2.jar spring-aop-3.0.5.RELEASE.jar wss4j-1.6.2.jar