Как работают Portlet-Bridge, Richfaces и ajax4jsf? - PullRequest
0 голосов
/ 01 октября 2010

Я пытаюсь заставить Liferay 6.0, портлетный мост JBoss 2.0 и Richfaces 4.0.0 работать вместе, используя конфигурацию, указанную в JBoss Forum и в документации по мосту портлета . Моя цель - использовать JSF 2.0 при реализации протлетов.

Я использую maven для построения и развертывания портлета в Liferay и включил зависимость Richfaces, например:

<dependency>
  <groupId>javax.faces</groupId>
  <artifactId>jsf-impl</artifactId>
  <version>2.0.2-FCS</version>
</dependency>
<dependency>
  <groupId>org.jboss.portletbridge</groupId>
  <artifactId>portletbridge-api</artifactId>
  <version>2.0.0.CR1</version>
</dependency>
<dependency>
  <groupId>org.jboss.portletbridge</groupId>
  <artifactId>portletbridge-impl</artifactId>
  <version>2.0.0.CR1</version>
</dependency>
        <dependency>
            <groupId>org.richfaces</groupId>
            <artifactId>richfaces-bom</artifactId>
            <version>4.0.0.20100826-M2</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
<dependency>
  <groupId>com.sun.facelets</groupId>
  <artifactId>jsf-facelets</artifactId>
  <version>1.1.15.B1</version>
</dependency>

Но когда я использую эту конфигурацию, я получаю следующую ошибку:

 SEVERE: Exception starting filter ajax4jsf
 java.lang.ClassNotFoundException: org.ajax4jsf.Filter
  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
  at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:269)
  at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
  at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
  at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838)
[...]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Поэтому я снова заглянул на форум и обнаружил это сообщение , в котором, по моему мнению, ajax4jsf больше не требуется настройка в файлах web.xml и portlet.xml. Поэтому я выкинул его и получил следующую ошибку:

[TomcatInstrumentableClassLoader@1738d88] error can't determine annotations of missing type org.ajax4jsf.renderkit.AjaxViewRootRenderer

Теперь я в замешательстве: нужно ли настраивать ajax4jsf в web.xml? Почему он не найден Liferay? И что в любом случае хорошо для этого модуля, реализации JSF 2.0 или проприетарной функциональности richfaces?

1 Ответ

0 голосов
/ 01 октября 2010

Единственная версия JBoss Portlet Bridge, которая поддерживает JSF 2, находится в альфа-версии. здесь . Вы можете поместить jar в папку lib с помощью api jar 2.0.0.FINAL. Также в SVN есть примеры на основе maven, которые имеют профиль Liferay "mvn package -Pliferay".

...