java - JSF property not found -


i have little trouble simple jsf page, trying different solutions find here none of them work. me discover, why can't make simple example of jsf work?

this pom.xml

<project xmlns="http://maven.apache.org/pom/4.0.0"          xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"          xsi:schemalocation="http://maven.apache.org/pom/4.0.0     http://maven.apache.org/maven-v4_0_0.xsd">     <modelversion>4.0.0</modelversion>     <groupid>com.mkyong.core</groupid>     <artifactid>primefaces</artifactid>     <packaging>war</packaging>     <version>1.0-snapshot</version>     <name>primefaces maven webapp</name>     <url>http://maven.apache.org</url>      <repositories>         <repository>             <id>prime-repo</id>             <name>primefaces maven repository</name>             <url>http://repository.primefaces.org</url>             <layout>default</layout>         </repository>     </repositories>      <dependencies>          <!-- primefaces -->         <dependency>             <groupid>org.primefaces</groupid>             <artifactid>primefaces</artifactid>             <version>4.0</version>         </dependency>          <!-- jsf 2 -->         <dependency>             <groupid>com.sun.faces</groupid>             <artifactid>jsf-api</artifactid>             <version>2.2.4</version>         </dependency>          <dependency>             <groupid>com.sun.faces</groupid>             <artifactid>jsf-impl</artifactid>             <version>2.2.4</version>         </dependency>          <dependency>             <groupid>javax.servlet</groupid>             <artifactid>jstl</artifactid>             <version>1.2</version>         </dependency>          <!--servlet api provided tomcat-->         <!--<dependency>-->         <!--<groupid>javax.servlet</groupid>-->         <!--<artifactid>servlet-api</artifactid>-->         <!--<version>2.5</version>-->         <!--</dependency>-->          <dependency>             <groupid>javax.servlet.jsp</groupid>             <artifactid>jsp-api</artifactid>             <version>2.1</version>         </dependency>          <!-- el -->         <dependency>             <groupid>org.glassfish.web</groupid>             <artifactid>el-impl</artifactid>             <version>2.2</version>         </dependency>          <!-- tomcat 6 need -->         <dependency>             <groupid>com.sun.el</groupid>             <artifactid>el-ri</artifactid>             <version>1.0</version>         </dependency>       </dependencies>     <build>         <plugins>             <plugin>                 <groupid>org.apache.maven.plugins</groupid>                 <artifactid>maven-compiler-plugin</artifactid>                 <version>2.3.2</version>                 <configuration>                     <source>1.6</source>                     <target>1.6</target>                 </configuration>             </plugin>         </plugins>     </build> </project> 

this web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"          xmlns="http://java.sun.com/xml/ns/javaee"          xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"          xsi:schemalocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"          id="webapp_id" version="3.0">      <!-- change "production" when ready deploy -->     <context-param>         <param-name>javax.faces.project_stage</param-name>         <param-value>development</param-value>     </context-param>      <!-- welcome page -->     <welcome-file-list>         <welcome-file>faces/index.xhtml</welcome-file>     </welcome-file-list>      <!-- jsf mapping -->     <servlet>         <servlet-name>faces servlet</servlet-name>         <servlet-class>javax.faces.webapp.facesservlet</servlet-class>         <load-on-startup>1</load-on-startup>     </servlet>      <!-- map these files jsf -->     <servlet-mapping>         <servlet-name>faces servlet</servlet-name>         <url-pattern>/faces/*</url-pattern>     </servlet-mapping>     <servlet-mapping>         <servlet-name>faces servlet</servlet-name>         <url-pattern>*.jsf</url-pattern>     </servlet-mapping>     <servlet-mapping>         <servlet-name>faces servlet</servlet-name>         <url-pattern>*.faces</url-pattern>     </servlet-mapping>     <servlet-mapping>         <servlet-name>faces servlet</servlet-name>         <url-pattern>*.xhtml</url-pattern>     </servlet-mapping>  </web-app> 

this faces-config.xml

 <?xml version='1.0' encoding='utf-8'?> <faces-config version="2.2"               xmlns="http://xmlns.jcp.org/xml/ns/javaee"               xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"               xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"> </faces-config> 

this view page index.xhtml

<?xml version="1.0" encoding="utf-8"?> <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"         "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"       xmlns:h="http://xmlns.jcp.org/jsf/html"       xmlns:f="http://xmlns.jcp.org/jsf/core"       xmlns:ui="http://xmlns.jcp.org/jsf/facelets"       xmlns:p="http://primefaces.org/ui"> <h:head> </h:head> <h:body>     <h:form>         enter name         <h:inputtext value="#{hellobean.input}" />         <h:commandbutton value="submit" action="#{hellobean.submit}" />     </h:form>     <h:outputtext value="#{hellobean.output}" />   </h:body> </html> 

this backing bean editorbean

package com.mykong.editor;  import javax.faces.bean.managedbean; import javax.faces.bean.requestscoped;  @managedbean @requestscoped public class hellobean {      private string input;     private string output;      public void submit() {         output = string.format("hello %s!", input);     }      public string getinput() {         return input;     }      public string getoutput() {         return output;     }      public void setinput(string input) {         this.input = input;     }  } 

the compilation goes right , deploy using command mvn tomcat:run, when type on field , click submit button see exception:

javax.el.propertynotfoundexception: /index.xhtml @15,51 value="#{hellobean.input}": target unreachable, identifier 'hellobean' resolved null     @ com.sun.faces.facelets.el.tagvalueexpression.gettype(tagvalueexpression.java:100)     @ com.sun.faces.renderkit.html_basic.htmlbasicinputrenderer.getconvertedvalue(htmlbasicinputrenderer.java:95)     @ javax.faces.component.uiinput.getconvertedvalue(uiinput.java:1046)     @ javax.faces.component.uiinput.validate(uiinput.java:976)     @ javax.faces.component.uiinput.executevalidate(uiinput.java:1249)     @ javax.faces.component.uiinput.processvalidators(uiinput.java:712)     @ javax.faces.component.uiform.processvalidators(uiform.java:253)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1258)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1258)     @ javax.faces.component.uiviewroot.processvalidators(uiviewroot.java:1195)     @ com.sun.faces.lifecycle.processvalidationsphase.execute(processvalidationsphase.java:76)     @ com.sun.faces.lifecycle.phase.dophase(phase.java:101)     @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:198)     @ javax.faces.webapp.facesservlet.service(facesservlet.java:646)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)     @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233)     @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191)     @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:127)     @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:102)     @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109)     @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:298)     @ org.apache.coyote.http11.http11processor.process(http11processor.java:857)     @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:588)     @ org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:489)     @ java.lang.thread.run(thread.java:724) caused by: javax.el.propertynotfoundexception: target unreachable, identifier 'hellobean' resolved null     @ com.sun.el.parser.astvalue.gettarget(astvalue.java:131)     @ com.sun.el.parser.astvalue.gettype(astvalue.java:76)     @ com.sun.el.valueexpressionimpl.gettype(valueexpressionimpl.java:195)     @ com.sun.faces.facelets.el.tagvalueexpression.gettype(tagvalueexpression.java:98)     ... 25 more 

from pom.xml - you're using jsf 2.2. , .xhtml file uses http://java.sun.com/... namespaces. problem lies in fact jsf 2.2 introduced new namespaces start http://xmlns.jcp.org/....

╔════════════════════════════════════════╦═════════════════════════════════════════╗ ║             old namespace              ║            jsf 2.2 namespace            ║ ╠════════════════════════════════════════╬═════════════════════════════════════════╣ ║ http://java.sun.com/jsf/core           ║ http://xmlns.jcp.org/jsf/core           ║ ║ http://java.sun.com/jsf/html           ║ http://xmlns.jcp.org/jsf/html           ║ ║ http://java.sun.com/jsf/facelets       ║ http://xmlns.jcp.org/jsf/facelets       ║ ║ http://java.sun.com/jsf/composite      ║ http://xmlns.jcp.org/jsf/composite      ║ ║ http://java.sun.com/jsp/jstl/core      ║ http://xmlns.jcp.org/jsp/jstl/core      ║ ║ http://java.sun.com/jsp/jstl/functions ║ http://xmlns.jcp.org/jsp/jstl/functions ║ ╚════════════════════════════════════════╩═════════════════════════════════════════╝ 

edit:

also faces-config.xml should 2.2:

<?xml version='1.0' encoding='utf-8'?> <faces-config version="2.2"     xmlns="http://xmlns.jcp.org/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">  </faces-config> 

update:

code tested on glassfish 4.0 , works fine, there must problem el2.2 , tomcat 6, see here details.


Comments

Popular posts from this blog

java.util.scanner - How to read and add only numbers to array from a text file -

rewrite - Trouble with Wordpress multiple custom querystrings -