NullPointerException после обновления JSF до 2.1, Richfaces до 4.3.7

При обновлении

  • jsf с 1,2 до 2,1
  • richfaces с 3.3.3 на 4.3.7.Final

перейдя по этой ссылке

Я застрял с каким-то странным исключением

java.lang.NullPointerException
com.ocpsoft.pretty.faces.application.PrettyNavigationHandler.processFacesNavigation(PrettyNavigationHandler.java:58)
com.ocpsoft.pretty.faces.application.PrettyNavigationHandler.handleNavigation(PrettyNavigationHandler.java:44)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
ua.com.winforce.online.site.http.filter.LocaleFilter.doFilter(LocaleFilter.java:65)

который появляется после отправки простой формы на странице login.jspx

<h:form>
<div class="form-group">
    <label for="rLogin"><h:outputText value="#{localeController.locale.registr.email}" escape="false"/></label>
    <h:inputText id="rLogin"  value="#{playerRegistration.login}" />
</div>
<div class="form-group">
    <label for="rPassword"><h:outputText value="#{localeController.locale.registr.password}" escape="false"/></label>
    <h:inputSecret value="#{playerRegistration.password}"/>
</div>
    <h:commandButton value="#{localeController.locale.mainMsg.registration}" action="#{playerRegistration.doRegistration}" />

LocaleFilter works as usual.

После обновления я оставил формат страницы .jspx.

Я думаю, что что-то не так в конфигурации, но не могу найти причину.

основной pom.xml:

<properties>
    <targetJdk>1.6</targetJdk>
    <spring.version>4.0.5.RELEASE</spring.version>
    <spring.security.version>3.2.4.RELEASE</spring.security.version>
    <hibernate.version>4.2.16.Final</hibernate.version>
    <richfaces.version>4.3.7.Final</richfaces.version>
</properties>

<dependencyManagement>
    <dependencies>
        <!-- Utils -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.7</version>
        </dependency>

        <!-- Servlets / JSP / JSTL -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

         <!-- RichFaces libraries -->
        <dependency>
      <groupId>org.richfaces</groupId>
      <artifactId>richfaces-bom</artifactId>
      <version>${richfaces.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>

    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
      <groupId>com.sun.faces</groupId>
      <artifactId>jsf-api</artifactId>
    </dependency>
    <dependency>
      <groupId>com.sun.faces</groupId>
      <artifactId>jsf-impl</artifactId>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>wsdl4j</groupId>
        <artifactId>wsdl4j</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <groupId>org.richfaces.core</groupId>
        <artifactId>richfaces-core-impl</artifactId>
      </dependency>
      <dependency>
        <groupId>org.richfaces.ui</groupId>
        <artifactId>richfaces-components-ui</artifactId>
      </dependency>
</dependencies>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">
<mime-mapping>
    <extension>jspx</extension>
    <mime-type>application/xml</mime-type>
</mime-mapping>

<context-param>
    <param-name>javax.faces.application.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.jspx</param-value>
</context-param>    
<context-param>
    <param-name>javax.faces.FACELETS_SUFFIX</param-name>
    <param-value>.jspx</param-value>
</context-param>    
<context-param>
    <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name>
    <param-value>*.jspx</param-value>
</context-param>

<context-param>
    <param-name>com.sun.faces.validateXml</param-name>
    <param-value>false</param-value>
</context-param>

<context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>false</param-value>
</context-param>

<context-param>
        <param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
        <param-value>false</param-value>
</context-param>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext-site-dao.xml
        /WEB-INF/applicationContext-site-security.xml
    </param-value>
</context-param>

<context-param>
    <param-name>com.sun.faces.sendPoweredByHeader</param-name>
    <param-value>false</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

Заголовок faces-config.xml:

<faces-config version="2.1" xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
<locale-config>
        <default-locale>ru</default-locale>
        <supported-locale>ru</supported-locale>
        <supported-locale>en</supported-locale>
    </locale-config>

Here are libs, used in project:

  • org / graylog2 / gelfj / 0.9.1-SNAPSHOT / gelfj-0.9.1-SNAPSHOT.jar
  • com / googlecode / json-simple / json-simple / 1.1 / json-simple-1.1.jar.
  • общий пул / общий пул / 1.5.2 / общий пул-1.5.2.jar
  • jcraft / jcraft / 1 / jcraft-1.jar
  • jazzlib / jazzlib / 1.07 / jazzlib-1.07.jar
  • сеть / SF / json-lib / json-lib / 2.2.3 / json-lib-2.2.3-jdk15.jar
  • сеть / SF / ezmorph / ezmorph / 1.0.6 / ezmorph-1.0.6.jar
  • javax / mail / mail / 1.4.1 / mail-1.4.1.jar
  • javax / активация / активация / 1.1 / активация-1.1.jar
  • license4j-время выполнения / license4j-время выполнения / 3.1 / license4j-runtime-3.1.jar
  • jdbcappender / jdbcappender / 2.1.01 / jdbcappender-2.1.01.jar
  • log4j / log4j / 1.2.14 / log4j-1.2.14.jar
  • org / slf4j / slf4j-log4j12 / 1.7.7 / slf4j-log4j12-1.7.7.jar
  • общедоступный язык / общедоступный язык / 2.4 / общедоступный язык-2.4.jar
  • общие-io / общие-io / 1.4 / общие-io-1.4.jar
  • общие-коллекции / общие-коллекции / 3.2 / общие-коллекции-3.2.jar
  • общие-dbcp / общие-dbcp / 1.2.1 / общие-dbcp-1.2.1.jar
  • xml-apis / xml-apis / 1.0.b2 / xml-apis-1.0.b2.jar
  • xerces / xercesImpl / 2.9.1 / xercesImpl-2.9.1.jar
  • общедоступное открытие / общедоступное открытие / 0,4 / общедоступное открытие-0.4.jar
  • общие журналы / общие журналы / 1.0.4 / общие журналы-1.0.4.jar
  • javax / сервлет / jstl / 1.2 / jstl-1.2.jar
  • com / солнце / facelets / jsf-facelets / 1.1.15 / jsf-facelets-1.1.15.jar
  • аспектj / аспектjrt / 1.5.3 / аспектjrt-1.5.3.jar
  • аспектj / аспектjweaver / 1.5.3 / аспектjweaver-1.5.3.jar
  • jfree / jcommon / 1.0.12 / jcommon-1.0.12.jar
  • org / springframework / spring-web / 4.0.5.RELEASE / spring-web-4.0.5.RELEASE.jar
  • org / springframework / spring-aop / 4.0.5.RELEASE / spring-aop-4.0.5.RELEASE.jar
  • org / springframework / spring-jdbc / 4.0.5.RELEASE / spring-jdbc-4.0.5.RELEASE.jar
  • org / springframework / spring-tx / 4.0.5.RELEASE / spring-tx-4.0.5.RELEASE.jar
  • org / springframework / spring-orm / 4.0.5.RELEASE / spring-orm-4.0.5.RELEASE.jar
  • org / springframework / Spring-support / 2.0.8 / Spring-support-2.0.8.jar
  • aopalliance / aopalliance / 1.0 / aopalliance-1.0.jar
  • org / springframework / security / spring-security-core / 3.2.4.RELEASE / spring-security-core-3.2.4.RELEASE.jar
  • org / springframework / spring-expression / 3.2.8.RELEASE / spring-expression-3.2.8.RELEASE.jar
  • org / springframework / security / Spring-security-config / 3.2.4.RELEASE / spring-security-config-3.2.4.RELEASE.jar
  • org / springframework / security / Spring-security-taglibs / 3.2.4.RELEASE / spring-security-taglibs-3.2.4.RELEASE.jar
  • org / springframework / security / spring-security-acl / 3.2.4.RELEASE / spring-security-acl-3.2.4.RELEASE.jar
  • org / springframework / security / Spring-security-web / 3.2.4.RELEASE / spring-security-web-3.2.4.RELEASE.jar
  • общие-httpclient / общие-httpclient / 3.1 / общие-httpclient-3.1.jar
  • Обще-Валидатор / Обще-Валидатор / 1.2.0 / Обще-Валидатор-1.2.0.jar
  • общие-beanutils / commons-beanutils / 1.7.0 / commons-beanutils-1.7.0.jar
  • метантенки общего пользования / метантенки общего пользования / 1.6 / варочный котел общего пользования-1.6.jar
  • oro / oro / 2.0.8 / oro-2.0.8.jar
  • общедоступные сети / общедоступные сети / 3.3 / общие-нетто-3.3.jar
  • javassist / javassist / 3.10.0.GA / javassist-3.10.0.GA.jar
  • postgresql / postgresql / 8.3-603.jdbc4 / postgresql-8.3-603.jdbc4.jar
  • кварц / кварц / 1.5.2 / кварц-1.5.2.jar
  • org / freemarker / freemarker / 2.3.9 / freemarker-2.3.9.jar
  • avalon-framework / avalon-framework / 4.1.3 / avalon-framework-4.1.3.jar
  • com / солнце / xml / сообщения / saaj / saaj-impl / 1.3.1 / saaj-impl-1.3.1.jar
  • javax / xml / мыло / saaj-api / 1.3 / saaj-api-1.3.jar
  • com / octo / captcha / jcaptcha-all / 1.0-RC6 / jcaptcha-all-1.0-RC6.jar
  • javax / аннотация / jsr250-api / 1.0 / jsr250-api-1.0.jar
  • Обще-кодек / Обще-кодек / 1.4 / Обще-кодек-1.4.jar
  • org / springframework / spring-core / 4.0.5.RELEASE / spring-core-4.0.5.RELEASE.jar
  • com / ocpsoft / prettyfaces-jsf12 / 3.3.3 / prettyfaces-jsf12-3.3.3.jar
  • org / richfaces / core / richfaces-core-impl / 4.3.7.Final / richfaces-core-impl-4.3.7.Final.jar
  • org / richfaces / core / richfaces-core-api / 4.3.7.Final / richfaces-core-api-4.3.7.Final.jar
  • сеть / sourceforge / cssparser / cssparser / 0.9.5 / cssparser-0.9.5.jar
  • org / w3c / css / sac / 1.3 / sac-1.3.jar
  • com / google / guava / guava / 13.0.1 / guava-13.0.1.jar
  • org / richfaces / ui / richfaces-components-ui / 4.3.7.Final / richfaces-components-ui-4.3.7.Final.jar
  • org / richfaces / ui / richfaces-components-api / 4.3.7.Final / richfaces-components-api-4.3.7.Final.jar
  • com / солнце / лица / jsf-impl / 2.1.3 / jsf-impl-2.1.3.jar
  • com / солнце / лица / jsf-api / 2.1.3 / jsf-api-2.1.3.jar
  • общие-конфигурация / общие-конфигурация / 1.10 / общие-конфигурация-1.10.jar
  • org / hibernate / hibernate-core / 4.2.16.Final / hibernate-core-4.2.16.Final.jar
  • антлр / антлр / 2.7.7 / антлр-2.7.7.jar
  • org / jboss / logging / jboss-logging / 3.1.0.GA / jboss-logging-3.1.0.GA.jar
  • dom4j / dom4j / 1.6.1 / dom4j-1.6.1.jar
  • org / javassist / javassist / 3.18.1-GA / javassist-3.18.1-GA.jar
  • org / jboss / spec / javax / transaction / jboss-transaction-api_1.1_spec / 1.0.1.Final / jboss-transaction-api_1.1_spec-1.0.1.Final.jar
  • org / hibernate / javax / persistence / hibernate-jpa-2.0-api / 1.0.1.Final / hibernate-jpa-2.0-api-1.0.1.Final.jar
  • org / hibernate / common / hibernate-commons-annotations / 4.0.2.Final / hibernate-commons-annotations-4.0.2.Final.jar
  • javax / jms / jms-api / 1.1-rev-1 / jms-api-1.1-rev-1.jar
  • org / apache / xbean / xbean-spring / 4.1 / xbean-spring-4.1.jar
  • org / apache / activemq / activemq-all / 5.12.1 / activemq-all-5.12.1.jar
  • org / springframework / spring-jms / 4.0.5.RELEASE / spring-jms-4.0.5.RELEASE.jar
  • Йода-время / Йода-время / 2.7 / Йода-время-2.7.jar
  • org / springframework / Spring-context-support / 4.0.5.RELEASE / Spring-context-support-4.0.5.RELEASE.jar
  • org / springframework / spring-beans / 4.0.5.RELEASE / spring-beans-4.0.5.RELEASE.jar
  • org / springframework / Spring-context / 4.0.5.RELEASE / Spring-context-4.0.5.RELEASE.jar
  • сеть / SF / ehcache / ehcache / 2.10.0 / ehcache-2.10.0.jar
  • org / slf4j / slf4j-api / 1.7.7 / slf4j-api-1.7.7.jar
  • javax / сервлет / javax.servlet-api / 3.0.1 / javax.servlet-api-3.0.1.jar
  • wsdl4j / wsdl4j / 1.6.1 / wsdl4j-1.6.1.jar

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


person Nikita R.    schedule 27.12.2015    source источник
comment
Похоже, #{playerRegistration.doRegistration} возвращает случай навигации, которого не существует. В любом случае попробуйте обновить версию Prettyfaces.   -  person Xtreme Biker    schedule 28.12.2015


Ответы (2)


Измените prettyfaces на версию, совместимую с JSF 2 (например, prettyfaces-jsf2-3.3.3.jar)

prettyfaces-jsf12 ... для JSF 1.2, prettyfaces-jsf2 ... для JSF 2.x (из документ OCPSoft)

проверьте, правильно ли он определен в вашем проекте. Кроме того, вы можете добавить следующий фильтр в web.xml:

<filter>
    <filter-name>Pretty Filter</filter-name>
    <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>Pretty Filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
person Vasil Lukach    schedule 28.12.2015

проблема заключалась в следующей зависимости

com/ocpsoft/prettyfaces-jsf12/3.3.3/prettyfaces-jsf12-3.3.3.jar

когда я заменил его на

com/ocpsoft/prettyfaces-jsf2/3.3.3/prettyfaces-jsf2-3.3.3.jar

для второй версии JSF проблема исчезла

person Nikita R.    schedule 03.01.2016