Liferay 6 на Glassfish 3.1 - проблема с использованием тегов liferay-ui в файлах jsp портлета - PullRequest
0 голосов
/ 23 ноября 2011

Мы видим эту проблему на нашей текущей установке кластера Glassfish 3.1. Ниже приведены детали вопроса - У нас работает Glassfish версии 3.1

  • Мы запускаем liferay 6.0.6
  • Война Liferay развернута на кластере Glassfish и отлично работает на обоих узлах.
  • Та же самая liferay war отлично работает и на одном сервере Tomcat.
  • Когда мы развертываем наши пользовательские портлеты в кластере Glassfish, он начинает работать сразу после развертывания. (перед перезагрузкой кластера Glassfish)
  • После перезапуска узлов кластера одно и то же приложение с портлетами перестает работать, выдает сообщение и выдает ошибку.
  • Мои исследования до сих пор показывают, что java.lang.NoClassDefFoundError: com / liferay / portal / util / PropsValues ​​является частью файла portal-impl.jar, который является частью портала liferay и должен быть доступен для нашего портлета. Каким-то образом после перезапуска файлы JAR загружаются другим способом, и тот же файл JAR недоступен для портлета.
  • Мы также попробовали установку Glassfish 3.1 Bundled liferay 6.1 и видим ту же проблему на ней.
  • В соответствии с рекомендациями форумов liferay мы поместили portal-service.jar и portlet.jar в каталог [glassfish home] / lib.
  • когда мы выполняем ps lsof -p в процессе экземпляра узла glassfish, он показывает, что этот процесс открывает требуемый 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 />

Список jar-файлов в моей папке портлета WEB-INF / lib


    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

Ответы [ 2 ]

2 голосов
/ 23 октября 2012

Я изменил

/ 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.PropsUtil и PropsKeys вместо этого, что избавило меня от ошибки.

Я сделал запрос на улучшение http://issues.liferay.com/browse/LPS-30660

0 голосов
/ 23 ноября 2011

com / liferay / portal / util / PropsValues ​​является частью файла portal-impl.jar, который является частью портала liferay и должен быть доступен для нашего портлета.

Это не так, portal-impl.jar недоступен для ваших портлетов и не предназначен для этого. Вы НЕ ДОЛЖНЫ поместить это в свой WEB-INF/lib. Этот jar-файл доступен и должен быть таким же образом для Liferay (liferay-приложения).

Можете ли вы показать содержимое (список jar) ваших (развернутых) портлетов WEB-INF / lib?

...