0

我们在当前的 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

4

2 回答 2

2

我变了

/html/taglib/ui/search_paginator/page.jsp
/html/taglib/ui/search_iterator/page.jsp
/html/taglib/ui/page_iterator/start.jsp

并删除了对 PropsValues 的调用,并将它们替换为对com.liferay.portal.kernel.util.PropsUtiland的调用,PropsKeys这为我消除了错误。

我提出了改进请求 http://issues.liferay.com/browse/LPS-30660

于 2012-10-22T20:45:19.843 回答
0

com/liferay/portal/util/PropsValues 是portal-impl.jar 文件的一部分,该文件是liferay 门户的一部分,应该可供我们的portlet 使用。

这是不正确的,portal-impl.jar它对您的 portlet 不可用,也不打算这样做。你不能把它放在你的WEB-INF/lib. 该 jar 仅对 Liferay(liferay 应用程序)可用,并且应该以这种方式使用。

你能显示你的(部署的)portlet WEB-INF/lib 的内容(jar 列表)吗?

于 2011-11-23T08:39:51.917 回答