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