Named

En src/main/java creamos el paquete com.tutosoftware.micoven.view
En el paquete com.tutosoftware.view creamos la clase LoginView
 
    
  package com.tutosoftware.micoven.view;

import java.io.Serializable;

import com.tutosoftware.micoven.model.Usuario;
import com.tutosoftware.micoven.util.SessionUtils;

import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.inject.Named;
import jakarta.servlet.http.HttpSession;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.core.MediaType;


@Named
@SessionScoped
public class LoginView implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 5105898498765679410L;
	/**
	 * 
	 */
	
	private String email;
	private String contrasena;
	private String nombreUsuario;
	private Usuario usuario;
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getContrasena() {
		return contrasena;
	}
	public void setContrasena(String contrasena) {
		this.contrasena = contrasena;
	}
	
	public void setNombreUsuario(String nombreUsuario) {
		this.nombreUsuario = nombreUsuario;
	}
	
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public String getNombreUsuario() {
		return nombreUsuario;
	}
	public String loginAccess() {
	    
		String URL ="http://127.0.0.1:8000/usuario/";
		
		Client client = ClientBuilder.newClient();
		
		usuario=client.target(URL+email).request(MediaType.APPLICATION_JSON_TYPE).get(Usuario.class);
		
		if(usuario == null) {
			
			addMessage("Success", "Usuario o password incorrectos");
			
			
			return "login";
			
		}	
		
		
		
		
		
	    
	    if(usuario.getPassword().equals(contrasena)) {
			
			
			HttpSession session = SessionUtils.getSession();
			nombreUsuario=usuario.getNombre()+" "+usuario.getApellidopaterno()+" "+usuario.getApellidomaterno();
		
			session.setAttribute("username",nombreUsuario);
			
			return "admin";
		}else {
			
			addMessage("Success", "Usuario o password incorrectos");
			
			return "login";
			
		}	
	    
	    
	    
	}
	
	
	
	public void addMessage(String summary, String detail) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
	
	
	
	public String logout() {
		HttpSession session = SessionUtils.getSession();
		session.invalidate();
		return "login";
	}

	
	
	
	
	

}

  
  
  
  
    
   

Creamos la clase UsuarioView
 
      
       
   package com.tutosoftware.micoven.view;

import java.io.Serializable;
import java.util.List;

import org.primefaces.PrimeFaces;

import com.tutosoftware.micoven.model.Usuario;

import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.inject.Named;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.Response.Status;
import jakarta.ws.rs.core.GenericType;


@Named
@SessionScoped
public class UsuarioView implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -4322992641156262239L;
	
	
	private List<Usuario> usuarios;
	private Usuario newusuario;
	public List<Usuario> getUsuarios() {
		return usuarios;
	}
	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}
	
	public Usuario getNewusuario() {
		return newusuario;
	}
	public void setNewusuario(Usuario newusuario) {
		this.newusuario = newusuario;
	}
	
	@PostConstruct
	public void listarUsuarios() {
		
		String URL ="http://127.0.0.1:8000/usuario";
		
		Client client = ClientBuilder.newClient();
		
		usuarios=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Usuario>>() {});
		
	}
	
	public void abrirNuevoUsuario() {
		this.newusuario = new Usuario();
	}
	
	public void crearUsuario() {
		
		String URL ="http://127.0.0.1:8000/usuario";
		
		Client client = ClientBuilder.newClient();
		
		Response response =
	            client.target(URL)
	            .request(MediaType.APPLICATION_JSON_TYPE)
	            .post(Entity.entity(newusuario,MediaType.APPLICATION_JSON_TYPE),Response.class);
		
		if (response.getStatus() == Status.CREATED.getStatusCode()) {
            addMessage("Confirmado","Usuario aceptado");	        
	    	
	    } else {
	    	
	    	addMessage("Fallo","Usuario no registrado");	
	    }
	    
	    limpiarUsuario();
	    
	    PrimeFaces current = PrimeFaces.current();
	    current.executeScript("PF('manageUsuarioDialog').hide();");
	    
		
		listarUsuarios();
		
	}
	
	
	
	public void actualizarUsuario() {
		
         String URL ="http://127.0.0.1:8000/usuario";
		
		Client client = ClientBuilder.newClient();
		
		Response response =
	            client.target(URL)
	            .request(MediaType.APPLICATION_JSON_TYPE)
	            .put(Entity.entity(newusuario,MediaType.APPLICATION_JSON_TYPE),Response.class);
		
		if (response.getStatus() == Status.OK.getStatusCode()) {
            addMessage("Usuario actualizado","Usuario aceptado");	        
	    	
	    } else {
	    	
	    	addMessage("Fallo","Usuario no registrado");	
	    }
		
		PrimeFaces current = PrimeFaces.current();
	    current.executeScript("PF('manageUsuarioDialog2').hide();");
	    
	    listarUsuarios();
		
	}
	
        public void eliminarUsuario() {
		
		
         String URL ="http://127.0.0.1:8000/usuario/";
		
		Client client = ClientBuilder.newClient();
		
		
		client.target(URL+newusuario.getEmail()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
		
		
	    
	    listarUsuarios();
		
		
	}

	
	
	
	
	
	
	public void addMessage(String summary, String detail) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
	
	
    public void limpiarUsuario() {
		
		newusuario=null;
		
	}

	
	
	
}
    
       
       
       
       
       
     
   

Creamos la clase ClienteView
 
        
  package com.tutosoftware.micoven.view;


import java.io.Serializable;
import java.util.List;

import org.primefaces.PrimeFaces;

import com.tutosoftware.micoven.model.Cliente;


import jakarta.annotation.PostConstruct;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.faces.view.ViewScoped;
import jakarta.inject.Named;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.Response.Status;

@Named
@ViewScoped
public class ClienteView implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -7348461013240183913L;
	
	private List<Cliente> clientes;
	private Cliente newcliente;
	
	
	public List<Cliente> getClientes() {
		return clientes;
	}
	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}
	public Cliente getNewcliente() {
		return newcliente;
	}
	public void setNewcliente(Cliente newcliente) {
		this.newcliente = newcliente;
	}
	
	
	@PostConstruct
	public void listarClientes() {
       String URL ="http://127.0.0.1:8000/cliente";
		
		Client client = ClientBuilder.newClient();
		
		clientes = client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Cliente>>() {});
	}
	
	
	public void abrirNuevoCliente() {
		this.newcliente = new Cliente();
	
	}
	
    public void crearCliente() {
		
		String URL ="http://127.0.0.1:8000/cliente";
		
		Client client = ClientBuilder.newClient();
		
		Response response =
	            client.target(URL)
	            .request(MediaType.APPLICATION_JSON_TYPE)
	            .post(Entity.entity(newcliente,MediaType.APPLICATION_JSON_TYPE),Response.class);
		
		if (response.getStatus() == Status.CREATED.getStatusCode()) {
            addMessage("Confirmado","Cliente aceptado");	        
	    	
	    } else {
	    	
	    	addMessage("Fallo","Cliente no registrado");	
	    }
	    
	    limpiarCliente();
	    
	    PrimeFaces current = PrimeFaces.current();
	    current.executeScript("PF('manageClienteDialog').hide();");
	    
		
		listarClientes();
		
	}
	
    public void actualizarCliente() {
		
        String URL ="http://127.0.0.1:8000/cliente";
		
		Client client = ClientBuilder.newClient();
		
		Response response =
	            client.target(URL)
	            .request(MediaType.APPLICATION_JSON_TYPE)
	            .put(Entity.entity(newcliente,MediaType.APPLICATION_JSON_TYPE),Response.class);
		
		if (response.getStatus() == Status.OK.getStatusCode()) {
           addMessage("Cliente actualizado","Cliente aceptado");	        
	    	
	    } else {
	    	
	    	addMessage("Fallo","Cliente no registrado");	
	    }
		
		PrimeFaces current = PrimeFaces.current();
	    current.executeScript("PF('manageClienteDialog2').hide();");
	    
	    listarClientes();
		
	}
	
    public void eliminarCliente() {
		
		
        String URL ="http://127.0.0.1:8000/cliente/";
		
		Client client = ClientBuilder.newClient();
		
		
		client.target(URL+newcliente.getWhatsapp()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
		
		
	    
	    listarClientes();
		
		
	}
	
	
	
	
	
	
	
	public void addMessage(String summary, String detail) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
	
	
    public void limpiarCliente() {
		
		newcliente=null;
		
	}
		
	

}