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

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

  • JSF от 1,2 до 2,1
  • richfaces от 3.3.3 до 4.3.7.

по этой ссылке

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

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 работает как обычно.

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

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

main 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>

Заголовок Face-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>

Вот библиотеки, используемые в проекте:

  • орг /graylog2/gelfj/0.9.1-SNAPSHOT/gelfj-0.9.1-SNAPSHOT.jar
  • ком / GoogleCode/ JSON-простой / JSON-простой / 1.1 / JSON-простой-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 Пб / JSON Пб / 2.2.3 / JSON Пб-2.2.3-jdk15.jar
  • сеть / SF / ezmorph / ezmorph / 1.0.6/ ezmorph-1.0.6.jar
  • javax / почта / почта / 1.4.1 / почте 1.4.1.jar
  • javax / активации / активация / 1.1 / активация-1.1.jar
  • License4J-среда / License4J-среда / 3,1 / License4J-среда-3.1.jar
  • jdbcappender / jdbcappender / 2.1.01 / jdbcappender-2.1.01.jar
  • log4j / log4j / 1.2.14 / log4j-1.2.14.jar
  • орг / SLF4J / SLF4J-log4j12/1.7.7/ SLF4J-log4j12-1.7.7.jar
  • Обще-Lang / Обще-языки / 2.4 / Обще-лан-2.4.jar
  • Обще-IO / Обще-IO / 1,4 / Обще-IO-1.4.jar
  • Обще-коллекция / Викисклад коллекция / 3.2 / Викисклад коллекции, 3.2.jar
  • Обще-ДБХП / Обще-ДБХП / 1.2.1 / Обще-ДБХП-1.2.1.jar
  • XML-APIs / XML-APIs / 1.0.b2 / XML-АПИС-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
  • ком / ВС / Facelets / JSF-Facelets / 1.1.15 / JSF-Facelets-1.1.15.jar
  • AspectJ / aspectjrt / 1.5.3 / aspectjrt-1.5.3.jar
  • AspectJ / aspectjweaver / 1.5.3 / aspectjweaver-1.5.3.jar
  • jfree / jcommon / 1.0.12 / jcommon-1.0.12.jar
  • орг /springframework/ весна веб /4.0.5.RELEASE/ весна веб-4.0.5.RELEASE.jar
  • орг /springframework/ весна-АОП /4.0.5.RELEASE/ весна-АОП-4.0.5.RELEASE.jar
  • орг /springframework/ весна JDBC /4.0.5.RELEASE/ весна-4.0.5.RELEASE.jar JDBC
  • орг /springframework/ весна-TX /4.0.5.RELEASE/ весна-ТХ-4.0.5.RELEASE.jar
  • орг /springframework/ весна-ОРМ /4.0.5.RELEASE/ весна-ОРМ-4.0.5.RELEASE.jar
  • орг /springframework/ пружинная поддержка /2.0.8/ весна-поддержка-2.0.8.jar
  • aopalliance / aopalliance / 1.0 / aopalliance-1.0.jar
  • орг /springframework/ безопасность / весна-безопасность ядро ​​/3.2.4.RELEASE/ весна-безопасность ядро-3.2.4.RELEASE.jar
  • орг /springframework/ пружинно-выражение /3.2.8.RELEASE/ весна-выражение-3.2.8.RELEASE.jar
  • орг /springframework/ безопасность / весна-безопасность конфигурация /3.2.4.RELEASE/ весна-безопасность конфигурация-3.2.4.RELEASE.jar
  • орг /springframework/ безопасность / весна-безопасность-библиотека теги /3.2.4.RELEASE/ весна-безопасность-библиотека теги-3.2.4.RELEASE.jar
  • орг /springframework/ безопасность / весна-безопасности ACL /3.2.4.RELEASE/ весна-безопасности ACL-3.2.4.RELEASE.jar
  • орг /springframework/ безопасность / весна-безопасности веб /3.2.4.RELEASE/ весна-безопасности веб-3.2.4.RELEASE.jar
  • Обще-HttpClient / Обще-HttpClient / 3,1 / Обще-HttpClient-3.1.jar
  • Обще-валидатор / Обще-валидатор / 1.2.0 / Обще-валидатор-1.2.0.jar
  • Обще-BeanUtils / Викисклад BeanUtils/1.7.0/ Викисклад BeanUtils-1.7.0.jar
  • Обще-варочный / Обще-варочный / 1,6/ Обще-варочного-1.6.jar
  • оро / оро /2.0.8/ орально-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
  • орг / FreeMarker/ FreeMarker/2.3.9/ FreeMarker-2.3.9.jar
  • Авалон-основа / Авалон-основа / 4.1.3 / Авалон-каркасный 4.1.3.jar
  • ком / ВС / XML / сообщений / SAAJ / SAAJ-осущ / 1.3.1 / SAAJ-осущ-1.3.1.jar
  • javax / XML / мыло / SAAJ-апи / 1,3 / SAAJ-апи-1.3.jar
  • ком / Octo / CAPTCHA, / jcaptcha-все / 1,0-RC6/jcaptcha-все-1,0-RC6.jar
  • javax / аннотаций /jsr250-апи /1.0/jsr250-апи-1.0.jar
  • Обще-кодек / Обще-кодек / 1,4 / Обще-кодек-1.4.jar
  • орг /springframework/ весна-ядро /4.0.5.RELEASE/ весна-ядро-4.0.5.RELEASE.jar
  • ком /ocpsoft/prettyfaces-jsf12/3.3.3/prettyfaces-jsf12-3.3.3.jar
  • орг / RichFaces / ядро ​​/ RichFaces-ядро-осущ /4.3.7.Final/ RichFaces-ядро-осущ-4.3.7.Final.jar
  • орг / RichFaces / ядро ​​/ RichFaces-ядро-апи /4.3.7.Final/ RichFaces-ядро-апи-4.3.7.Final.jar
  • сеть / SourceForge / cssparser / cssparser / 0.9.5 / cssparser-0.9.5.jar
  • орг / w3c / CSS / мешок / 1,3 / мешок-1.3.jar
  • ком / Google / гуавы / гуавы / 13.0.1 / гуава-13.0.1.jar
  • орг / RichFaces / UI / RichFaces-компонента-щий /4.3.7.Final/ RichFaces-компонента-щ-4.3.7.Final.jar
  • орг / RichFaces / UI / RichFaces-компонента-апи /4.3.7.Final/ RichFaces-компонента-апи-4.3.7.Final.jar
  • ком / ВС / лица / JSF-осущ / 2.1.3 / JSF-осущ-2.1.3.jar
  • ком / ВС / лица / JSF-апи / 2.1.3 / JSF-апи-2.1.3.jar
  • Обще-конфигурация / Обще-конфигурация / 1,10 / Обще-конфигурация-1.10.jar
  • орг / спящий режим / спящий режим-ядро / 4.2.16.Final / спящий режим-Core-4.2.16.Final.jar
  • ANTLR / ANTLR / 2.7.7/ ANTLR-2.7.7.jar
  • орг / JBoss / регистрация / JBoss каротаж /3.1.0.GA/ JBoss-каротаж 3.1.0.GA.jar
  • dom4j / dom4j / 1.6.1 / dom4j-1.6.1.jar
  • орг / Javassist/ Javassist/3.18.1-GA/ Javassist-3.18.1-GA.jar
  • орг / JBoss / спецификация /javax/ транзакция / JBoss-транзакций api_1.1_spec/1.0.1.Final/ JBoss-транзакций api_1.1_spec-1.0.1.Final.jar
  • орг / спящий режим /javax/ сохранение / спящий режим JPA-2,0-апи-/ 1.0.1.Final / спящий режим JPA-2,0-апи-1.0.1.Final.jar-
  • орг / спящая / общие / спящая-Викисклад аннотации /4.0.2.Final/ спящая-Викисклад аннотации-4.0.2.Final.jar
  • javax / JMS / JMS-апи / 1,1-Rev-1/ JMS-апи-1,1-Rev-1.jar
  • орг / апач /xbean/xbean-рессора / 4,1/xbean-весна-4.1.jar
  • орг / апач / ActiveMQ / ActiveMQ-все /5.12.1/ ActiveMQ-все-5.12.1.jar
  • орг /springframework/ весна-JMS /4.0.5.RELEASE/ весна-JMS-4.0.5.RELEASE.jar
  • Joda время / Joda время / 2,7/ Joda-время 2.7.jar
  • орг /springframework/ весна-контекст-поддержка /4.0.5.RELEASE/ весна-контекст-поддержка-4.0.5.RELEASE.jar
  • орг /springframework/ весна-бобы /4.0.5.RELEASE/ весна-бобы-4.0.5.RELEASE.jar
  • орг /springframework/ весна / контекст 4.0.5.RELEASE / весна-контекст-4.0.5.RELEASE.jar
  • сеть / SF / EHCache/ EHCache/ 2.10.0 / EHCache-2.10.0.jar
  • орг / SLF4J / SLF4J-апи / 1.7.7/ SLF4J-апи-1.7.7.jar
  • javax / сервлет / javax.servlet-апи /3.0.1/javax.servlet-апи-3.0.1.jar
  • wsdl4j / wsdl4j / 1.6.1 / wsdl4j-1.6.1.jar

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

2 ответа

Решение

Проблема была в следующей зависимости

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 проблема ушла

Измените 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>
Другие вопросы по тегам