2010-02-09 40 views
1

當我跑我的JSF我得到以下異常...獲取異常運行簡單的JSF?

例外

org.apache.jasper.JasperException: javax.servlet.ServletException: 
javax.servlet.jsp.JspException: javax.faces.el.EvaluationException: 
javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: ''. 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522) 

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322) 
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:147) 
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87) 
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) 
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117) 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) 

MY JSF代碼

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> 
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Insert title here</title> 
    </head> 
    <body> 
    <f:view> 
     <f:loadBundle var="msg" basename="property.menu"/> 
     <h:form> 
     <h:selectOneMenu id="Name" value="#{myBean.input}"> 
      <f:selectItem itemLabel="#{msg.Arun}" itemValue="#{msg.Arun}"/> 
      <f:selectItem itemValue="#{msg.Hari}" itemLabel="#{msg.Hari}"/> 
      <f:selectItem itemValue="#{msg.Jeya}" itemLabel="#{msg.Jeya}"/> 
      <f:selectItem itemValue="#{msg.Radhika}" itemLabel="#{msg.Radhika}"/> 
      <f:selectItem itemValue="#{msg.Karthik}" itemLabel="#{msg.Karthik}"/> 
     </h:selectOneMenu> 
     </h:form> 
    </f:view> 
    </body> 
</html> 

MY faces-config.xml中

<faces-config> 
    <managed-bean> 
    <managed-bean-name>myBean</managed-bean-name> 
    <managed-bean-class>mypackage.bean</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
    </managed-bean> 
</faces-config> 

的web.xml

<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>0</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.faces</url-pattern> 
</servlet-mapping> 
+1

你的faces-config.xml和你的臉部servlet映射? – Bozho 2010-02-09 07:33:08

+0

已編輯該問題....請檢查 – Hariharbalaji 2010-02-09 09:04:51

+0

,因此您的faces-config中沒有'','',''標籤? – Bozho 2010-02-09 09:06:51

回答

2

至少有兩個缺陷:

首先在faces-config

<managed-bean-class>mypackage.bean</managed-bean-class> 

不知道這是一個錯字,但類名應該以大寫字母開頭。這只是標準Sun Java Naming Convention。因此通過修復:

<managed-bean-class>mypackage.Bean</managed-bean-class> 

,如有必要,重命名實際Bean爲好。然而,這並不是每本身這個特殊問題的原因,但不好的做法,應儘快清理;)

其次在JSF頁面:

<h:selectOneMenu id="Name" value="#{myBean.input}"> 

它說myBean,但你只有在faces config中聲明瞭bean

<managed-bean-name>bean</managed-bean-name> 

現在是哪一個? :)

+0

僅將其Mybean鍵入...在編輯問題時,我犯了這個錯誤...我接受你提到的第一個更正。 。 – Hariharbalaji 2010-02-10 04:45:54