Развертывание портлета Liferay - исключение приведения класса - PullRequest
3 голосов
/ 14 декабря 2011

Я новичок в портлетах и ​​пытаюсь создать его из своего приложения JSF 2.0.Я использую liferay-portal-tomcat-6.1.0-ce-b4, JSF 2.1.3 и PortletFaces bridge 2.0.1.

Когда я пытаюсь установить портлет в liferay, я всегда получаю следующее исключениеи я действительно не знаю почему, потому что согласно документации, интерфейс org.portletfaces.bridge.GenericFacesPortlet должен реализовывать интерфейс портлета ...

09: 31: 31,709 ОШИБКА [HotDeployUtil: 114] ком.liferay.portal.kernel.deploy.hot.HotD eployException: ошибка регистрации портлетов для MondisVisualizer-1.3-SNAPSHOT com.liferay.portal.kernel.deploy.hot.HotDeployException: ошибка регистрации портлетов для MondisVisualizer-1.3-SNAPSHOT в com.life«.deploy.hot.HotDeployUtil._doFireDeployEvent (HotDeployUtil.java:111) на com.liferay.portal.kernel.deploy.hot.HotDeployUtil.PortletContextListener.java:101) на com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit (BasePor talLifecycle.java:42) на com.liferay.portal.kernel.util.PortalLifecycleUtil.register (PortalLif ecycleUtil.java:):в com.liferay.portal.kernel.util.PortalLifecycleUtil.register (PortalLif ecycleUtil.java:53) в com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLife (BasePortalLifecycle.java:50) в com.liferay.portal.kernel.servlet.PortletContextListener.contextIniti alized (PortletContextListener.java:55) в org.apache.catalina.core.StandardContext.listenerStart (StandardContex t.java:4723) в org.apache.catalina.core. $ 1.allcall (StandardContext.java: 5226) в org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java: 5221)в java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:303) в java.util.concurrent.FutureTask.run (FutureTask.java:138) в java.util.concurrent.ThreadPoolExecutor $ Worker.runutor.java:886) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor .java: 908) в java.lang.Thread.run (Thread.java:619) Причина: java.lang.ClassCastException: org.portletfaces.bridge.GenericFacesPor не может быть преобразован в javax.portlet.Portlet на com.liferay.portlet.PortletBagFactory.create (PortletBagFactory.java:1 31) на com.liferay.portal.deploy.hot.PortletHotDeployListener.initPortlet (Ро rtletHotDeployListener.java:603) при com.liferay.portal.deploy.hot.PortletHotDeployListener.doInvokeDeploy (PortletHotDeployListener.java:385) при com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy (Р ortletHotDeployListener.java: 114) ... еще 17

portlet.xml:

<?xml version="1.0" encoding="UTF-8"?>

<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"
    xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
    <portlet>
        <portlet-name>Visualizer</portlet-name>
        <portlet-class>org.portletfaces.bridge.GenericFacesPortlet</portlet-class>
        <init-param>
            <name>javax.portlet.faces.defaultViewId.view</name>
            <value>/index.xhtml</value>
        </init-param>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>view</portlet-mode>
        </supports>
        <portlet-info>
            <title>Mondis Visualizer</title>
        </portlet-info>
    </portlet>
</portlet-app>

liferay-portlet.xml:

<liferay-portlet-app>
    <portlet>
        <portlet-name>Visualizer</portlet-name>
        <instanceable>true</instanceable>
        <remoteable>false</remoteable>
        <ajaxable>false</ajaxable>
        <!-- <header-portlet-css>/resources/styles/bookCatalog.css</header-portlet-css>
        <header-portlet-javascript>/resources/scripts/jsf.js</header-portlet-javascript> -->
    </portlet>
</liferay-portlet-app>

liferay-display.Иксмл:

<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 6.0.0//EN" "http://www.liferay.com/dtd/liferay-display_6_0_0.dtd">

 <display>
    <category name="category.mondis.visualizer">
        <portlet id="Visualizer" />
    </category>
 </display>

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Я нашел проблему, которая убивает мой портлет.

Porlet.jar из комплекта liferay, вероятно, каким-то образом взломан / изменен. Обходной путь должен установить зависимость portlet.jar как «предоставленную» в maven - и java свяжет ваш код во время выполнения с (вероятно, измененной) библиотекой в ​​tomcat. И это будет работать ...

    <dependency>
        <groupId>javax.portlet</groupId>
        <artifactId>portlet-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency> 
1 голос
/ 15 августа 2013

Перейти к Liferay-портал-6.1.1-се-GA2 \-7.0.27 кот \ WebApps

Там вы найдете файл, который вы пытаетесь развернуть, Кроме того:

D ...... \ liferay-portal-6.1.1-ce-ga2 \ tomcat-7.0.27 \ temp Temp создаст папку из того, что вы развернули в развернутой папке. Я предлагаю удалить весь контент в temp и перезапустить ваш сервер.

...