Erro ao acesso EJB3

6 respostas
rmomogi

Estou com esse erro e não o sei como resolver…

javax.servlet.ServletException: The class 'com.cvhnet.ejb.UserActionBean' does not have the property 'user'.

6 Respostas

warley

Está parecendo que sua classe com.cvhnet.ejb.UserActionBean não possui o atributo ‘user’.

Posta o código que vc faz lookup.

rmomogi
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cvhnet.ejb;

import com.cvhnet.entity.Log;
import com.cvhnet.entity.User;
import com.cvhnet.entity.UserAccess;
import com.cvhnet.entity.UserAccount;
import com.cvhnet.util.Util;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author rmoraes
 */
@Stateless(mappedName="userActionBean")
public class UserActionBean implements UserActionRemote {

    @PersistenceContext
    private EntityManager em;

    private User user;
    private UserAccess userAccess;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public UserAccess getUserAccess() {
        return userAccess;
    }

    public void setUserAccess(UserAccess userAccess) {
        this.userAccess = userAccess;
    }

    public UserAccount getUserAccount() {
        return userAccount;
    }

    public void setUserAccount(UserAccount userAccount) {
        this.userAccount = userAccount;
    }
    private UserAccount userAccount;

    public UserActionBean(){
        user = new User();
    }

    public void add() {

        // Grava usuário
        em.persist(user);

        // Grava acessos
        em.persist(userAccess);

        // Grava contas
        em.persist(userAccount);

        Log log = new Log(null, Util.getIP(), "Criação de usuário: " + user.getEmail());
        em.persist(log);
    }

    public void findByEmail() {
    }

    public boolean limpar() {
        user.setEmail("");
        user.setPassw("");
        return true;
    }
}
warley

Mande o código do servlet. Lembrando que se vc estiver usando uma verão antiga do JBoss vc não vai conseguir fazer o lookup usando mappedName=“userActionBean”, vc vai ter que usar o JNDI.

rmomogi

Estou usando glassFish como servidor…

O código da página…

<%-- 
    Document   : index
    Created on : 06/07/2009, 08:23:30
    Author     : rmoraes

--%>

<!-- RichFaces tag library declaration -->
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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=UTF-8">
        <title>Login</title>
    </head>
    <body>
        <f:view>

            <a4j:form>
                <rich:panel style="width:260px;" header="Login de Acesso">
                    <h:panelGrid columns="3" cellspacing="5px">
                        <h:outputText value="Email:" />
                        <h:inputText id="email" label="Email:" maxlength="80" size="30" value="#{userAction.user.email}">
                            <f:validateLength minimum="1" maximum="80"/>
                        </h:inputText>
                        </br>
                        <h:outputText value="Senha:" />
                        <h:inputSecret id="senha" label="Email:" maxlength="80" size="30" value="#{userAction.user.passw}">
                            <f:validateLength minimum="1" maximum="10"/>
                        </h:inputSecret>
                        </br>
                        <a4j:commandButton id="cmdLogin" value="Login"/>
                        <a4j:commandButton id="cmdLimpar" value="Limpar"/>
                    </h:panelGrid>
                </rich:panel>
            </a4j:form>
        </f:view>
    </body>
</html>
warley

A sua classe userActionBean está mapeada no FacesConfig? Pq este erro que vc está recebendo não é de EJB não.

Você pode fazer o seguinte teste: mapear a classe User no FacesConfig e colocar no seu jsp o código desta forma:

<h:inputSecret id=“senha” label=“Email:” maxlength=“80” size=“30” value="#{user.passw}">

rmomogi

Este é o meu código para mapeamento do EJB… tem algo de errado?

<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<faces-config version="1.2" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">

    <managed-bean>
        <managed-bean-name>userAction</managed-bean-name>
        <managed-bean-class>com.ejb.UserActionBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>

</faces-config>
Criado 6 de julho de 2009
Ultima resposta 6 de jul. de 2009
Respostas 6
Participantes 2