Why am I having this error on the JSF page?

I am new to jsf. I have a maven project and it works on websphere 8. I use jsf and richfaces. I get this error:

Error Parsing /viewMetadata/index.xhtml: Error Traced[line: 2] The element type "html" must be terminated by the matching end-tagend with '>'. 

The faces-config.xml look like this: (this is leer. I currently don't have a managed thread)

 <?xml version="1.0" encoding="UTF-8"?> <faces-config 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_0.xsd" version="2.0"> </faces-config> 

web.xml is as follows:

 <?xml version="1.0" encoding="UTF-8"?> <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_2_5.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"> <display-name>My project</display-name> <welcome-file-list> <welcome-file>index.xhtml</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>org.richfaces.skin</param-name> <param-value>blueSky</param-value> </context-param> <context-param> <param-name>org.richfaces.enableControlSkinning</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <listener> <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> </listener> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> </web-app> 

and at the end my first jsf .. page (index.xhtml)

 <?xml version="1.0" encoding="ISO-8859-1" ?> <!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:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <h:head> <title>RichFaces Greeter</title> </h:head> <h:body> <f:view> <h:form> <rich:panel header="RichFaces Greeter 5" style="width: 315px"> <rich:inputNumberSlider minValue="1" maxValue="100" showInput="false" /> <rich:inputNumberSpinner minValue="1" maxValue="100" /> <rich:calendar id="date" value="#{bean.dateTest}" oncurrentdateselect="if (!confirm('Are you sure to change month(year)?')){return false;}" oncurrentdateselected="alert('month(year) select:'+event.rich.date.toString());" /> </rich:panel> </h:form> </f:view> </h:body> </html> 

My POM.xml looks like this: (Maybe some libraries are missing?)

 <dependencies> <dependency> <groupId>org.richfaces</groupId> <artifactId>richfaces-bom</artifactId> <type>pom</type> <version>4.2.2.Final</version> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.0.2</version> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.0.2</version> </dependency> </dependencies> <build> <finalName>MyWeb</finalName> </build> </project> 
+4
source share
2 answers

From your POM.xml, I judge that you are using the JSF implementation of mojarra. But your web.xml partly refers to Apache MyFaces (Mojarra is the JSF reference implementation, MyFaces is the competing implementation from the bottom of Apache). Come with the mojarra. So lose the listener. Then you miss the JSF servlet declaration, which is responsible for processing JSF pages, so you need to add it. Here is your web.xml with suggested changes:

 <?xml version="1.0" encoding="UTF-8"?> <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_2_5.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"> <display-name>GEm project</display-name> <welcome-file-list> <welcome-file>index.xhtml</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>org.richfaces.skin</param-name> <param-value>blueSky</param-value> </context-param> <context-param> <param-name>org.richfaces.enableControlSkinning</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <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>*.xhtml</url-pattern> </servlet-mapping> </web-app> 
+2
source

The error says this in index.xhtml. Why are you looking at another place? Sometimes, if you add an additional tag where it does not belong, it can ruin the parsing of the page. Make sure that all tags are correctly closed in the right place. That is, for each <xyz> tag there is a corresponding </xyz> or it is created using <xyz /> if the closing tag is not needed (note the space between "z" and "/"). This is XHTML not html. All tags must be properly closed. This does not forgive, like HTML. And make sure the closing tags are in the right place.

0
source

All Articles