当前位置: 首页 > 知识库问答 >
问题:

未捕获的引用错误:mojarra未定义时javax.faces.PROJECT_STAGE是生产

祁承望
2023-03-14

虽然这个问题被问了好几次,但没有一个能解决我的问题。

以下是示例代码

<?xml version='1.0' encoding='UTF-8'?>
<web-app 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-app_3_1.xsd"
    version="3.1">
    <display-name>MyApp</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</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>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
    <f:view locale="en_US">
        <ui:insert name="fmetadata" />
        <h:head>
            <ui:include src="/includes/head.xhtml" />
            <title>
                <ui:insert name="title" />
            </title>            
        </h:head>
        <h:body>
            <ui:insert name="content" />
        </h:body>
    </f:view>
</html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
        
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta http-equiv="Pragma" content="no-cache"/>
    
    <h:outputStylesheet name="style/style.css" />
</ui:composition>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    template="/templates/template.xhtml">
    <ui:define name="fmetadata" />

    <ui:define name="title">
        <h:outputText value="Login" />      
    </ui:define>

    <ui:define name="content">
        <div id="login">
            <h2>
                <h:outputText value="Login" escape="false" />
            </h2>
            <h:messages styleClass="errorMessage" />
            <h:form>
                <label>
                    <h:outputText value="Login"
                        escape="false" />
                </label>
                <br />
                <h:inputText value="#{authenticationController.view.login}"
                    required="true"
                    requiredMessage="Please enter a User Name"
                    styleClass="inputText" />
                <br />
                <label>
                    <h:outputText value="Password"
                        escape="false" />
                </label>
                <br />
                <h:inputSecret value="#{authenticationController.view.password}"
                    required="true"
                    requiredMessage="Please enter a password"
                    styleClass="inputText" />
                <div class="inputButton">
                    <h:commandLink value="Login"
                        action="#{authenticationController.authenticate}" />
                </div>
            </h:form>
        </div>
    </ui:define>
</ui:composition>
import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.ConfigurableNavigationHandler;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;

@SessionScoped
@ManagedBean(name = "authenticationController")
public class AuthenticationController implements Serializable {

    private static final long serialVersionUID = -6685652208738725676L;

    @EJB
    private UserServiceRemote userService;
    
    private LoginView view;

    public AuthenticationController() {
        
    }
    
    @PostConstruct
    public void init() {
        view = new LoginView();     
    }
        
    public String authenticate() {
        String login = view.getLogin();
        String password = view.getPassword();
            
        boolean isAuthenticated = userService.authenticate(login,password); 

        if(isAuthenticated) {
            return "home.xhtml?faces-redirect=true";
        } else {
            FacesContext.getCurrentInstance().addMessage(null,new FacesMessage("Invalid User Name / Password"));
            return "login.xhtml?faces-redirect=true";
        }           
    }   
        
    public LoginView getView() {
        return view;
    }

    public void setView(LoginView view) {
        this.view = view;
    }
}
public class LoginView implements Serializable {

    private static final long serialVersionUID = -9139791962440768607L;

    private String login;
    private String password;
    
    public LoginView() {
        
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

当我单击Loginh时,我得到的错误:命令链接是:

jsf。js以HTML格式呈现,URL:http://localhost:6180/myapp/javax.faces.resource/jsf.js.xhtml?ln=javax.faces可访问:

  • JSF Mojarra-2.2.17

共有1个答案

施飞雨
2023-03-14

我不认为你真的在用莫哈拉:

  1. TomEE与MyFaces一起发货

所以我的赌注是与您的(Maven定义的?)Mojarra(如果您在类路径的任何位置都有它)和应用服务器附带的Myface冲突。您可以强制使用Mojarra版本的jsf.js

或者,您可以通过将lib文件夹中必要的jar替换为Mojarra提供的内容来强制在TomEE上使用Mojarra

 类似资料:
  • 我第一次与Firebase合作进行一个实践项目,我很难设置用户登录其帐户的能力。 我已成功设置注册,但到目前为止,我无法登录并检查身份验证状态是否正常工作。 我在控制台中不断收到的错误是“未捕获引用错误:未定义Firebase” 我自己做了一些研究,但我似乎找到的唯一答案是,你需要包含Firebase的脚本标签,这在这里不相关,因为我已经包含了它们,或者2.4.2版本的过时响应 有关守则如下:

  • 用我的超文本标记语言,下面的代码部分 在控制台上生成以下错误: 未捕获引用错误:未定义WEBGL 我已经导入了所有必要的js,所以问题是:如何解决这个问题?

  • 这是我的HTML代码,我试图将div中输出的内容转换成可下载的pdf文件。 我在控制台上得到这个错误: “未捕获引用错误:未定义jsPDF” 我不确定我做错了什么,我甚至在脚本标签中添加了。。。

  • 我正在使用node。js创建一个web应用程序。运行应用程序时(通过在浏览器上打开index.html或在终端上使用“npm start”命令),会出现两个错误: 未捕获引用错误:未定义进程 未捕获引用错误:未定义require 我解决了“require is not defined”错误,特别是在我的索引中加入了。html头标记指向此脚本的链接,其中定义了require函数。但是,我找不到与pr

  • 就这样,我正在用electron开发一个程序,一切都很好,就像在轮子上一样,直到,我做了我的小npm启动,像往常一样,我测试了一下我的应用程序,我发现javascript不再工作了,所以,我做了一点“Ctrl Shift I”,我在控制台中看到,我的模块都没有被导入,因为在最上面,我们有一个很大的错误:“uncaughtreferenceerror:primordials没有在”inspect“中

  • 我正在为angular项目执行单元测试,但是我遇到了错误 未捕获的引用错误:未定义区域 在茉莉和因果报应中。目前我使用角6。 未捕获的引用错误:区域未在以下位置定义:9876/_ karma _ web pack _/web pack:/node _ modules/Zone . js/dist/Zone-testing . js:85 at:9876/_ karma _ web pack _/w