Не могу понять ошибку в JAVA EE при реализации requestScoped - PullRequest
0 голосов
/ 28 апреля 2019

Я работал в Java-EE для задачи в универе, и мой код не работает. Я застрял в ней уже неделю, и я просмотрел документы, но до сих пор не понимаю, что здесь происходит.

Я разрабатываю свой код в соответствии с лабораторными инструкциями, развертываю веб-приложение, которое поможет мне вводить данные в базу данных. Я столкнулся с ошибкой

Exception attempting to inject Remote ejb-ref name=web.myuserManagedBean/myuserFacade,Remote 3.x interface =session.MyuserFacadeRemote,ejb-link=null,lookup=,mappedName=,jndi-name=session.MyuserFacadeRemote,refType=Session into class web.myuserManagedBean: Lookup failed for 'java:comp/env/web.myuserManagedBean/myuserFacade' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming}

Я понимаю, что что-то не так, когда я использую @ RequestScoped.

Когда я удаляю эту строку, ошибка исчезает, и страница загружается, но данные не заносятся в базу данных (как ожидалось), но я не понимаю, что это такое, что здесь идет не так.

Удалено @RequestScoped

управляемый компонент, который ссылается на страницу XML

@Named(value = "myuserManagedBean")
@RequestScoped
public class myuserManagedBean  {

 @EJB
private MyuserFacadeRemote myuserFacade;

private String userid;
private String name;
private String password;
private String cPassword; // for confirmed password field
private String email;
private String phone;
private String address;
private String secQn;
private String secAns;


public String addUser() {
   String result = "failure";

    if (isValidUserid(userid) && isValidName(name)
            && isValidPassword(password) && isValidPassword(cPassword)
            && isValidEmail(email) && isValidPhone(phone)
            && isValidAddress(address) && isValidSecQn(secQn)
            && isValidSecAns(secAns) && password.equals(cPassword)) {
        MyuserDTO myuserDTO = new MyuserDTO(userid, name,
                password, email, phone, address, secQn, secAns);
        if (myuserFacade.createRecord(myuserDTO)) {
            result = "success";
        }
    }
    return result;
}

правило навигации

<navigation-rule>
    <from-view-id>/addUser.xhtml</from-view-id>
    <navigation-case>
        <from-action>#{myuserManagedBean.addUser}</from-action>
        <from-outcome>success</from-outcome>
        <to-view-id>/addUserSuccess.xhtml</to-view-id>
    </navigation-case>
    <navigation-case>
        <from-action>#{myuserManagedBean.addUser}</from-action>
        <from-outcome>failure</from-outcome>
        <to-view-id>/addUserFailure.xhtml</to-view-id>
    </navigation-case>
</navigation-rule> 

Должна быть возможность отображать, смог ли код разместить данные в базе данных. Домашняя страница работает нормально, и когда я нажимаю на файл добавления пользователя, который связан с управляемым bean-компонентом через myuserManagedBean, страница не загружается, и появляется ошибка.

Я не загружал другие фрагменты кода, потому что я не думал, что это актуально, пожалуйста, дайте мне знать, если вам нужно что-то еще. Любая помощь будет высоко ценится

...