我知道有很多关于这个问题的SO问题,但是我到处冲浪并尝试了所有可能的解决方案无济于事。
我正在尝试使用GlassFish 4.1.1部署一个小应用程序。应用程序成功构建和部署,但是当我单击命令按钮提交表单时,我收到以下错误
我正在使用CDI通过@Named
注释来管理Java bean。我正在使用Java EE 7,所以我认为没有必要使用beans.xml文件,但我手动创建了一个并将其放在WEB-INF目录中,我仍然遇到了同样的错误。
也许这是有用的信息:我使用JavaServer Faces作为我的Web应用程序的框架。但是,与下图不同,我屏幕上的JavaServer Faces配置显示为灰色并锁定。它不允许我选择任何选项卡(库,配置,组件),因此我不能选择Primefaces作为我的应用程序设置的JSF组件套件。我认为这不会是一个问题,因为我已经下载了PrimeFaces 6.1.4 jar并将其放在我的应用程序的Libraries文件夹中。
JSF Managed Bean类文件:
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
@Named(value = "autoLoan")
@SessionScoped
public class AutoLoan implements Serializable {
/* The values of these private properties are supplied by the user */
private float principalAmount; // = P
private float interestRatePercent;
private float numberOfYears; // = y
/* The values of these private properties are computed in calculateLoan() */
private double monthlyPayment; // = M
private double totalInterest;
/**
* Creates a new instance from the AutoLoan class
*/
public AutoLoan() {
}
.
.
.
(我有所有领域的getter和setter)
index.xhtml文件,我试图引用bean:
<!-- Column 2 -->
<h:inputText id="principal"
label="Principal Amount Borrowed Input Text Field"
value="#{autoLoan.principalAmount}"
required="true"
styleClass="loanText">
<f:validateDoubleRange minimum="1000" maximum="1000000"></f:validateDoubleRange>
</h:inputText>
请告诉我