Развертывание простого Портлета к Liferay - ClassCastException

Я развертываю самый основной Портлет, возможный на Liferay:

public class FirstPortlet extends GenericPortlet
{
    @RenderMode(name="VIEW")
    public void welcomeWelcome(RenderRequest request, 
            RenderResponse response) throws  
            PortletException, IOException
    {       
        PrintWriter out = response.getWriter();
        out.println ("This is a portlet, <em>within a Portal</em>");
    }
}

На развертывании я получаю ClassCastException:

 Caused by: java.lang.ClassCastException: FirstPortlet cannot be cast to javax.po
rtlet.Portlet

После поиска с помощью Google кажется, что развертывание portlet.jar является ошибкой - я удостоверился, что случайно не делаю этого.

javax.portlet. Портлет реализован GenericPortlet, и все примеры Портлета, кажется, расширяют GenericPortlet, таким образом, я предполагаю, что это в порядке.

Кто-либо может помочь?

6
задан Dick Chesterwood 2 March 2010 в 20:20
поделиться

2 ответа

javax.portlet.Portlet реализован GenericPortlet, и все примеры Portlet , похоже, расширяют GenericPortlet {{1} } так что я полагаю, что это нормально.

Если GenericPortlet реализует Portlet , я предполагаю, что у вас проблема с загрузчиком классов. Класс загружается дважды в два разных загрузчика классов и, следовательно, считается разными.

После поиска в Google выяснилось, что развертывание portlet.jar является ошибкой - Я убедился, что не случайно делаю это.

Я бы посоветовал вам дважды проверить, не загружен ли где-то дважды portlet.jar (или другой jar, содержащий Portlet ). Возможные местоположения зависят от используемого вами контейнера (Tomcat? Glassfish?).

8
ответ дан 8 December 2019 в 16:01
поделиться

Это определенно проблема с загрузкой классов. Если вы уверены , что в вашем архиве WAR нет portlet.jar, вы можете включить подробную загрузку классов и посмотреть, откуда загружается javax.portlet.Portlet.

Чтобы включить подробную загрузку классов, передайте JVM следующий параметр:

-verbose: class

7
ответ дан 8 December 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: