O Eclipse disponibiliza diversos atalhos que podem melhorar, e muito, nossa produtividade ao programar sistemas de software. Eu destaco abaixo aqueles que mais utilizo:
Se alguém tiver outras boas sugestões de atalhos do eclipse, por favor registrem-as nos comentários.
Artigos relacionados:
Como criar um projeto J2EE no JBoss Tools
Para criar um projeto Web com suporte ao CDI, JSF e Primefaces no JBoss Tools siga os passos abaixo:
Adicionar Facets
Assim como no projeto EJB é necessário adicionar facets ao projeto Web (nesse caso facets do JSF e do CDI):
Adicionar libs ao Projeto
É necessário adicionar as seguintes libs no diretório WEB-INF/lib do projeto Web:
Configuração do web.xml
Configure o padrão de URL do JSF como *.xhtml e defina o tema do primefaces com o código abaixo:
<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <context-param> <param-name>primefaces.THEME</param-name> <param-value>sam</param-value> </context-param>
O arquivo web.xml também deve ser modificado para definir as restrições de segurança, porém isso é abordado na Configuração da Aplicação Web com security-domain.
Artigos relacionados:
Como criar um projeto J2EE no JBoss Tools
Como criar um projeto WEB com suporte ao CDI, JSF e Primefaces no JBoss Tools
Para criar um módulo EJB com suporte a CDI e JPA e adicioná-lo a um projeto enterprise criado previamente, siga os seguintes passos:
Adicionar Facets
O projeto terá sido criado, porém ainda não suportará JPA nem CDI. Para isso siga os seguintes passos:
Engenharia Reversa JPA (tabelas -> entidades)
O JBoss Tools é capaz de mapear todas as tabelas do seu banco de dados e gerar automaticamente todas as entidades de persistência. Para isso siga os seguintes passos:
Passos:
Neste momento será necessário criar uma conexão com o banco de dados, portanto clique no botão Add conections (ao lado do combo box)
Selecione o Oracle Thin Driver 11
Após serem criadas, as entidades podem apontar alguns erros. Por exemplo, no caso de views será necessário anotar algum(ns) campos como ID. No caso de projetos que referenciam entidades de diversos schemas será necessário adicionar schema="nome_do_schema" na anotação Table das entidades (recomendável para qualquer projeto)
Criar Session Beans (Facades)
Os session beans contêm os métodos que realizam as operações de persistência, utilizando JPA, além de fornecer outros serviços que podem ser acessados por diversos outros projetos. Para criar um session bean, siga os passos abaixo:
Após os passos executados acima, o projeto EJB estará pronto para ser utilizado.
Em breve será disponibilizado um vídeo que demonstra os passos descritos acima para criar um projeto EJB.
Artigos relacionados:
Como criar um projeto EJB com suporte a JPA e CDI no JBoss Tools
Como criar um projeto WEB com suporte ao CDI, JSF e Primefaces no JBoss Tools
Para criar um projeto java enterprise (J2EE) no Eclipse com o plugin do JBoss Tools siga os seguintes passos:
Configurações Adicionais
Caso a aplicação utilize bibliotecas como o itext ou seam é necessário criar a pasta lib dentro de EarContent/META-INF e adicionar as seguintes bibliotecas para que sejam reconhecidas pelo JBoss AS 7:
Neste momento, o Eclipse apontará um erro no arquivo application.xml. Este aviso pode ser ignorado, pois quando o primeiro módulo for adicionado a ele (tanto o EJB, quanto o Web), o aviso desaparecerá.
Vídeo que demonstra os passos descritos acima:
Artigo relacionado:
Como criar um projeto WEB com suporte ao CDI, JSF e Primefaces no JBoss Tools
Quando configurado o security-domain no JBoss AS 7, precisamos configurar também nossa aplicação web para utilizá-lo.
Primeiramente é necessário criar o arquivo jboss-web.xml dentro da pasta WEB-INF do projeto WEB e adicionar o seguinte conteúdo a ele:
<?xml version="1.0" encoding="UTF-8"?> <jboss-web> <security-domain>java:/jaas/portalRealm</security-domain> </jboss-web>
É importante observar que o nome do security-domain é portalRealm, entretanto é necessário concatenar java:/jaas/ antes de seu nome para que o domínio de segurança seja acessado corretamente.
Para finalizar é preciso simplesmente definir o método de autenticação e as restrições de segurança, que define os padrões de URL da aplicação que terão suas páginas protegidas e que grupos de usuários podem acessá-las. Segue um exemplo abaixo:
<security-constraint> <web-resource-collection> <web-resource-name>All resources</web-resource-name> <description>Protects all resources</description> <url-pattern>/private/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>professor</role-name> </auth-constraint> </security-constraint> <security-role> <role-name>professor</role-name> </security-role> <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/Login.xhtml</form-login-page> <form-error-page>/LoginError.xhtml</form-error-page> </form-login-config> </login-config>
Observações:
Faça o deploy da aplicação web e tente acessar uma página protegida. Você será, então, redirecionado para a página Login.xhtml e terá que se autenticar antes de acessar a página.
Do mesmo modo que o Glassfish configura a autenticação de suas aplicações através do realm, o JBoss AS 7 faz uso do security-domain para executar esta tarefa.
Do lado do servidor é necessário apenas editar o arquivo standalone.xml e adicionar o seguinte código dentro de <security-domains> </security-domains>:
<security-domains> <security-domain name="portalRealm"> <authentication> <login-module code="Database" flag="required"> <module-option name="dsJndiName" value="java:jboss/datasources/portal"/> <module-option name="principalsQuery" value="SELECT senha FROM usuario WHERE username=?"/> <module-option name="rolesQuery" value="select grupo,'Roles' FROM usuario WHERE username=?"/> <module-option name="hashAlgorithm" value="SHA-256"/> <module-option name="hashEncoding" value="base64"/> </login-module> </authentication> </security-domain> </security-domains>
Considerações:
Caso hashAlgorithm e hashEncoding não sejam especificadas, será considerado que a senha está armazenada sem nenhum tipo de criptografia ou codificação.
Para instruções de como configurar a aplicação para utilizar o security-domain, clique aqui.
Artigos relacionados:
Configuração do Driver Oracle (ojdbc) como módulo no JBoss AS 7
Como criar um projeto EJB com suporte a JPA e CDI no JBoss Tools
Há diversos meios para criar um datasource para a conexão com o banco de dados, como, por exemplo, através da edição de arquivos de configuração ou por intermédio da linha de comando.
O meio abordado neste artigo é a que faz uso do console gráfico.
Passos:
Após seguidos estes passos o datasource estará disponível para ser acessado por qualquer aplicação implantada no servidor e também para ser acessado pelo security-domain.
Artigos relacionados:
Criação de Datasource no JBoss AS 7
Como criar um projeto EJB com suporte a JPA e CDI no JBoss Tools
Há duas formas de se configurar um driver JDBC no JBoss Application Server 7. A primeira é por intermédio do deploy do driver ojdbc6.jar no servidor e a outra é configurá-lo como módulo.
Vou apresentar apenas a segunda solução, visto que ela é a mais recomendada pela própria documentação do JBoss AS, pois o driver só é inicializado com o servidor quando for requisitado por alguma aplicação implantada.
Passos:
O arquivo module.xml deverá ter o seguinte conteúdo:
<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6"> <resources> <resource-root path="ojdbc6.jar"/> </resources> <dependencies> <module name="javax.api"/> </dependencies> </module>
Ao final, a estrutura dos diretórios deverá ser a seguinte:
Seguidos os passos acima, será necessário reiniciar o servidor caso ele esteja iniciado e o driver estará adequadamente configurado e pronto para ser utilizado pelas aplicações.