DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Java EE 6 na Prática – Parte 1 - Java Magazine 80

Da versão 6 da plataforma Java, Enterprise Edition (Java EE 6), que foi publicada como padrão do JCP em dezembro de 2009, trazendo várias novidades em relação ao Java EE 5. A plataforma Java EE engloba diversas tecnologias úteis no desenvolvimento de aplicações corporativas, ou seja, sistemas que envolvem toda uma organização e seus diversos usuários, exigindo características como escalabilidade, segurança, etc.








ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    18 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Oto Soares Coelho Júnior
Baixei o código do site e rodei com o NetBeans, porém estorou uma exceção no StackTrace. Acredito que falte colocar o jar do MySQL em algum lugar. Caso positivo, como configura a partir do NetBeans para o Glassfish subir com o jar do MySQL Connector no classpath? Exceção gerada: Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource
[há +1 ano] - Responder

 

Oto Soares Coelho Júnior
Sobre meu post anterior, me esqueci de especificar qual aplicação se refere. Se refere ao artigo Java EE 6 Na prática da edição 80 da revista Java Magazine. Obrigado.
[há +1 ano] - Responder

 

[autor] Vítor Estêvão Silva Souza
Olá Oto,

Realmente ficou faltando esta informação, peço desculpas. Tem até o link pro download do driver no final da matéria, mas faltou citar onde colocá-lo depois de obtido. Coloque na seguinte pasta:

diretorio-do-glassfish/glassfish/domains/domain1/lib/ext

Bons estudos!

Vítor Souza
[há +1 ano] - Responder
 

Rodrigo Abreu Oliveira
Neste método na classe PlacaAmbulanciaValidator, estava voltando a mensagem de erro de validação.
O número da placa que usei foi HKC 0448. O problema que encontrei foi que na linha:

crescente = atual > anterior

não permitia um número igual, somente maior, que neste caso não é verdadeiro, pois existe a placa 0448.
Portanto alterei o codigo para

crescente = atual >= anterior

e funcionou corretamente.


    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        if (value.length() != 8) {
            return false;
        }
        boolean crescente = true;
        int anterior = Character.digit(value.charAt(4), 10);
        for (int i = 5; crescente && i < 8; i++) {
            int atual = Character.digit(value.charAt(i), 10);
            crescente = atual >= anterior;
            anterior = atual;
        }
        return crescente;
    }

Value pelo artigo. Muito bom!!!
[há +1 ano] - Responder

 

[autor] Vítor Estêvão Silva Souza
Oi Rodrigo, que bom que gostou do artigo e obrigado por sinalizar o "erro". No entanto, estritamente falando não é um erro, pois 0448 não está em ordem crescente. Ordem crescente é quanto o número seguinte é maior que o anterior. Quando tem dois números iguais, como 0448, este encontra-se em ordem não-decrescente. Neste caso, você está correto em trocar o ">" por ">=". Bons estudos! - Vítor
[há +1 ano] - Responder
 

Marcos Estevam De Sousa
Vitor. Baixei a aplicação de exemplo da edição 80 da Java Magazine e ao executar o projeto ele gerou o seguinte erro.
C:\Users\Estevam\Documents\NetBeansProjects\SisContrAm\nbproject\build-impl.xml:169: The following error occurred while executing this line:
C:\Users\Estevam\Documents\NetBeansProjects\SisContrAm\SisContrAm-war\nbproject\build-impl.xml:377: The libs.CopyLibs.classpath property is not set up.

This property must point to
org-netbeans-modules-java-j2seproject-copylibstask.jar file which is part

O que devo fazer para corrigir esta falha?
[há +1 ano] - Responder

 

[autor] Vítor Estêvão Silva Souza
Olá Marcos,

Este site fala sobre este erro e talvez apresente uma solução para o seu problema:


Quando utilizamos um projeto construído por outra pessoa, às vezes alguns erros estranhos se apresentam mesmo. Caso esta página (ou uma pesquisa no Google) não solucione o problema, sugiro começar o projeto do zero, seguindo as instruções do artigo e utilizando o código-fonte disponível para completar as lacunas deixadas pelo artigo, ou seja, copiando o código das classes que não foi possível mostrar como listagem no artigo por questões de espaço.

Boa sorte,

Vítor Souza

[há +1 ano] - Responder
 

Jonathas Oliveira Lima
Vitor, mais uma dúvida.

Estou usando postgres coloquei o driver no local indicado aparentemente tudo perfeito, porém ao inicializar o glassfish, as tabelas não estão sendo criadas no banco de dados, e olhando com mais calma os modelos, não percebi nenhuma anotação referenciando as tables do banco. Como é o processo do container criar automatico as tabelas, ja que no momento de criar a persistencia deixamos o create marcado?

obrigado
[há +1 ano] - Responder

 

[autor] Vítor Estêvão Silva Souza
Olá Jonathas,

As tabelas são criadas pelo JPA, o mecanismo de persistência padrão do Java EE 6. As anotações não precisam ter o nome da tabela ou das colunas, pois ele assume nomes padrão a partir do nome das classes e atributos. Mas se quiser, você pode usar um parâmetro da anotação para especificar o nome das coisas como quiser.

As tabelas deveriam ser criadas no primeiro uso do JPA, ou seja, assim que você implementar alguma funcionalidade que utiliza a persistência (faz uma consulta ou grava algum dado), ao iniciar a aplicação e utilizar esta funcionalidade pela primeira vez, as tabelas devem ser criadas. Lembrando que o banco de dados deve ser criado por você anteriormente, configurando usuário e senha e estes dados (banco, usuário, senha) devem ser utilizados para configurar a conexão dentro do NetBeans.

Bons estudos!

Vítor Souza


[há +1 ano] - Responder
 

Wagner Alves Da Silva Junior
Parabéns pelo artigo, continue sempre assim seus artigos são alguns dos melhores da revista.
[há +1 ano] - Responder

 

[autor] Vítor Estêvão Silva Souza
Obrigado, Wagner, por todos os comentários!
Abraço,
Vítor Souza
[há +1 ano] - Responder
 

Rafael Alexandre Silva Bomfim
Ótimo artigo!
Segui tudo passo-a-passo e no final funcionou perfeitamente.

Só tive que adicionar o driver do postgre que estou utilzando.
Parabéns pelo artigo.
[há +1 ano] - Responder

 

[autor] Vítor Estêvão Silva Souza
Obrigado pelo comentário, Rafael!

Grande abraço,
Vítor Souza

[há +1 ano] - Responder
 

Jonathas Oliveira Lima
Onde esta a classe função na aplicação? no modelo de dados a classe não é apresentada. Outra grande dúvida, neste primeiro artigo percebi que não tem nada falando de como usar postgres, é necessário colocar o driver do postgres onde? Gostaria de maiores detalhes e esclarecimento sobre o artigo escrito.
[há +1 ano] - Responder

 

[autor] Vítor Estêvão Silva Souza
Caro Jonathas,

Como diz o artigo:

"A propriedade funcoes é um conjunto de valores Funcao, um tipo enumerado não exibido no diagrama e que compreende os valores OPERADOR, DESPACHANTE, MOTORISTA e ADMIN."

Ou seja, é um enum com as propriedades OPERADOR, DESPACHANTE, MOTORISTA, ADMIN. Se você fizer o download do código-fonte associado à aplicação, encontrará em SisContrAm-ejb/src/java/br/com/javamagazine/siscontram/dominio o arquivo Funcao.java:

package br.com.javamagazine.siscontram.dominio;public enum Funcao { OPERADOR, DESPACHANTE, MOTORISTA, ADMIN}


Quanto ao uso do PostgreSQL, como o foco da matéria não é o uso de diferentes bancos de dados, escolhi um deles como exemplo e o pouco que foi falado sobre BD foi falado só sobre MySQL e JavaDB (Derby). Mas a ideia é a mesma. Os drivers vão no seguinte diretório:

diretorio-do-glassfish/glassfish/domains/domain1/lib/ext

Isso realmente eu esqueci de incluir na matéria. Está, no entanto, num comentário anterior ao seu nesta página.

Bons estudos,

Vítor Souza

[há +1 ano] - Responder
 

Brunno Henrique De Salve Agostinho
Aonde se faz o download do código fonte?
[há +1 ano] - Responder
 

Devmedia - Equipe De Moderação
os fontes estão em http://www.devmedia.com.br/articles/viewcomp.asp?comp=17137
[há +1 ano] - Responder
 

Walter Santos De Andrade Souza
Olá,

Estou tentando rodar a aplicação, mas me deparei c/ o seguinte erro:

Implantação inicial de SisContrAm até C:\Users\Walter Santos de And\Documents\NetBeansProjects\SisContrAm\dist\gfdeploy\SisContrAm
Distribuição inicial do SisContrAm completada
Initializing...
deploy?DEFAULT=C:\Users\Walter Santos de And\Documents\NetBeansProjects\SisContrAm\dist\gfdeploy\SisContrAm&name=SisContrAm&force=true falhou em GlassFish Server 3.1
Erro durante a implementação: Exception while preparing the app : A sorted collection has to define @Sort: br.com.javamagazine.siscontram.dominio.Ambulancia.motoristas. Consulte o server.log para obter mais detalhes
Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method : org.hibernate.AnnotationException: A sorted collection has to define @Sort: br.com.javamagazine.siscontram.dominio.Ambulancia.motoristas
A sorted collection has to define @Sort: br.com.javamagazine.siscontram.dominio.Ambulancia.motoristas
C:\Users\Walter Santos de And\Documents\NetBeansProjects\SisContrAm\nbproject\build-impl.xml:288:
O módulo não foi implementado.
at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:210)
at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:106)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
FALHA NA CONSTRUÇÃO (tempo total: 9 segundos)

Usei o código fonte e o artigo p/ montar a aplicação do zero. O que eu posso fazer?
[hoje] - Responder
 



Publicidade
Autor
Vítor Estêvão Silva Souza

Graduação em Ciência da Computação e Mestrado em Informática com ênfase em Engenharia de Software na Universidade Federal do Espírito Santo (UFES), onde trabalhou também como professor substituto.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03