JBoss Application Server

JBoss

JBoss é um servidor de aplicação de código fonte aberto baseado na plataforma JEE e implementado completamente na linguagem de programação Java. Em virtude disso, ele pode ser usado em qualquer Sistema Operacional que suporte a referida linguagem. O JBoss Application Server 7, utiliza os arquivos: standalone.bat (ou standalone.sh) para prover a sua inicialização. Os desenvolvedores responsáveis estão em uma empresa de serviços chamada "JBoss Inc." fundada por Marc Fleury, o criador da primeira versão do JBoss. O projeto é custeado por uma rede mundial de colaboradores. Em Abril de 2006, foi anunciada sua aquisição pela Red Hat. A partir da versão 8 o JBoss passou a se chamar Wildfly, além da troca de nomes teve várias melhorias e mudanças como a troca do container que era o JBossWeb para o Undertow. Como alternativa open-source ao JBoss, temos o GlassFish, que é a implementação de referência de toda a especificação Java EE.

http://www.jboss.org/

http://wildfly.org/

Estrutura do projeto:

LIBS:

		primefaces-5.2-sources.jar
		primefaces-5.2.jar	

class Usuario

		package entity;

		import java.io.Serializable;
		import javax.persistence.Column;
		import javax.persistence.Entity;
		import javax.persistence.GeneratedValue;
		import javax.persistence.GenerationType;
		import javax.persistence.Id;
		import javax.persistence.Table;

		@Entity
		@Table(name="usuario") 
		public class Usuario implements Serializable{
		
		private static final long serialVersionUID = 1L;

		@Id
		@GeneratedValue(strategy=GenerationType.IDENTITY)
		private Integer id;

		@Column(length=80)
		private String login;

		@Column(length=250)
		private String senha;

		public Usuario() {
		// TODO Auto-generated constructor stub
		}

		public Usuario(Integer id, String login, String senha) {
		super();
		this.id = id;
		this.login = login;
		this.senha = senha;
		}

		public Integer getId() {
		return id;
		}

		public void setId(Integer id) {
		this.id = id;
		}

		public String getLogin() {
		return login;
		}

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

		public String getSenha() {
		return senha;
		}

		public void setSenha(String senha) {
		this.senha = senha;
		}

		public static long getSerialversionuid() {
		return serialVersionUID;
		}

		}

class UserDao

	
		package persistence;

		import java.util.List;
		import javax.ejb.LocalBean;
		import javax.ejb.Stateless;
		import javax.persistence.EntityManager;
		import javax.persistence.PersistenceContext;
		import entity.Usuario;

		@Stateless
		@LocalBean 
		public class UserDao {

		@PersistenceContext(unitName="jbosschefe")
		EntityManager em; //new nele (injectable)

			public void create(Usuario user) {
			// Critptografia.criptografar(user);
			em.persist(user);
			}

			public void update(Usuario user) {
			em.merge(user);
			}

			public List<Usuario> findAll() {
			return em.createQuery("select u from User as u").
			getResultList();
			}

			public Usuario findByCode(Integer cod) {
			return em.find(Usuario.class, cod);
			}

			public void delete(Integer cod) {
			em.remove(em.getReference(Usuario.class, cod));
			}

			}


Configurar o projeto


Clicar com o botão direito no projeto -> Properties...

Marcar Java Server Faces -> Futher configuration -> Apply...

Marcar JPA -> Futher Configuration...

Irá criar uma pasta chamada META-INF com o arquivo persistence.xml

Configurar persistence.xml

	
		<?xml version="1.0" encoding="UTF-8"?>
		<persistence version="2.1" 
		<xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
		<xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		<xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
		<persistence-unit name="jbosschefe"> <jta-data-source>java:/jdbc/chefe</jta-data-source>
		<class>entity.Usuario</class>
		<properties>
		<property name="hibernate.hbdl.auto" value="update"></property>
		<property name="hibernate.show_sql" value="true"></property>
		<property name="hibernate.format_sql" value="true"></property>
		</properties>
		</persistence-unit>
		</persistence>

class ManagerUser

		package manager;

		import java.io.Serializable;
		import java.util.List;
		import javax.faces.application.FacesMessage;
		import javax.faces.bean.ManagedBean;
		import javax.faces.bean.SessionScoped;
		import javax.faces.context.FacesContext;
		import javax.inject.Inject;
		import entity.Usuario;
		import persistence.UserDao;

		@ManagedBean(name="mb")
		@SessionScoped 
		public class ManagerUser implements Serializable{
		
		private static final long serialVersionUID = 1L;
		
		@Inject
		private UserDao dao;

		@Inject
		private Usuario user;

		private List<Usuario> users;

		public ManagerUser() {
		user=new Usuario();
		}

		public void gravar() {
		FacesContext fc = FacesContext.getCurrentInstance();
		try {
		dao.create(user); //gravar
		user = new Usuario(); //limpar os Dados senao setEspaço("")
		fc.addMessage(null, new FacesMessage("Dados Gravados.."));
		}catch(Exception ex) {
		ex.printStackTrace();
		fc.addMessage(null, new FacesMessage(" error.." + ex.getMessage()));
		}

		}

		public Usuario getUser() {
		return user;
		}

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

		public List<Usuario> getUsers() {
		users = dao.findAll();
		return users;
		}

		public void setUsers(List<Usuario> users) {
		this.users = users;
		}

		public UserDao getDao() {
		return dao;
		}

		public void setDao(UserDao dao) {
		this.dao = dao;
		}
		
		}

web.xml

	
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
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>projetoWebServer2</display-name>
<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>*.jsf</url-pattern>
</servlet-mapping>
<listener> <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> </listener>
</web-app>

beans.xml

	
<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans_1_1.xsd"
version="1.1" bean-discovery-mode="annotated">
</beans>

Adicionando o JBoss

Clique no link do Server


Clicar em Red Hat JBoss Middleware -> Red Hat JBoss Enterprise Application Platform 6.1+ -> next


Next -> Finish


Para ver se existe projetos antigos no diretório. Clicar com o botão direito no servidor -> Show In -> File Browser


Apagar todos os projetos nesta pasta


Clicar no Jboss com o botão direito -> Start Esperar até inicializar totalmente


Para adicionar o projeto ao JBoss Clicar no Jboss com botão direito -> Add and Remove


Finish Esperar montar o projeto


Depois que o projeto sincronizar Clicar no projeto com o botão direito -> Start


Verificar qual a porta que esta sendo utilizada pelo Jboss


No Chrome digitar: localhost:8081 ou 9990. Para abrir o gerenciador do JBoss na web. Clicar em Administration Console


Digitar o usuario: “coti” e senha “coti@110”


Clicar em Deployments


Adicionar o Mysql 5.1.6


Clicar em add


Clicar em enable -> save


Clicar em configuration


Clicar em add para adicionar o JNDI


Colocar um nome para conexão -> JNDI -> next java:/jdbc/chefe


Marcar mysql -> Next


Digitar as configurações de conexão -> Test Conection URL: jdbc:mysql://localhost:3306/chefe?createDatabaseIfNotExist=true


Conexão ok -> ok -> done


sistema.xhtml


	
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
</h:head>
<h:body>
<p:panel header="Gravar os Dados">
<h:form id="form1">
<p:panelGrid columns="2">
<h:outputText value="Email:"/>
<p:inputText value="#{mb.user.login}"/>
<h:outputText value="Senha:"/>
<p:inputText value="#{mb.user.senha}"/>
</p:panelGrid>
<p:commandButton value="Gravar"
action="#{mb.gravar}"
update=":form1"
ajax="true"></p:commandButton>
<p:growl></p:growl>
</h:form>
</p:panel>
</h:body>
</html>

Adicionar o projeto ao JBoss Clicar no Jboss com o botão direito -> clicar em add and remove


Adicionar o projeto -> finish


Projeto implantado


Criando a tabela


Implantado no admin do JBoss


Rodando o sistema.xhtml


Gravando


Gravado


No banco