Mensagens enviadas por: andrefariagomes
Índice dos Fóruns » Perfil de andrefariagomes » Mensagens enviadas por andrefariagomes
Autor Mensagem
Pessoal, estou desenvolvendo um aplicativo que importa informações através de web-services e realiza executa um processo com essas informações e persiste alguns dados no banco de dados. Estou utilizando JBoss AS 4.x + EJB 3 + JPA e um serviço de Scheduler do JBoss que executa o serviço de importação de hora em hora.

Para o web-service client estou utilizando JBoss WebServices com JAX-WS, os objetos persistentes (annotados com @Entity) estão um em um .jar (model.jar), e os objetos de acessos a dados (DAOs) estão em outro (dao.jar), isso porque esses mesmos daos e entities são utilizados em outras aplicações também, por isso estão prontos!

Meu problema é o seguinte dentro dos StatelessBeans preciso acessar a estes DAOs porém não os quero instanciar nem mesmo construir um DAOFactory, quero que esses beans sejam inseridos nos EBJs por IoC. Em outras aplicações usamos o SpringFramework para isso.

Pesquisei e encotrei as seguintes opções:
1 . Utilizar um cotainer como o SpringFramework ou Guice(Google).
Com o framework JBossSpringIntegration (http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossSpringIntegration), é possível integrar Spring + EJB3 + JBoss AS.
2. De alguma forma (sei lá como) inserir estes DAOs no contexto de JNDI e obtê-los nos EJBS com @Resource
3. Ignorar os DAOs e desistir dessa idéia maluca....

O que vocês sugerem que eu faça?
Giulliano wrote:Olha eu concordo com vc que as aplicações RIA vem crescendo e talvez tornem-se a nova onda da internet...

mas Desktop não tem nada a ver com RIA para Web né...podem até ser parecidos...mas as coisas mudam conceitualmente...


Você tem razão, me expressei muito mau...
Mas ainda acho que java desktop não é fraco, pode até não ser tão simples como Delphi, VB, etc...
Se você encarar que um sócio é uma pessoa física você desenvolver algo do tipo:

public class Pessoa {//atributos e comportamentos}
public class PessoaFisica extends Pessoa {//atributos e comportamentos}
public class Socio extends PessoaFisica {//atributos e comportamentos}

No banco de dados seria algo assim:

create table pessoa { integer pessoa_key primary key, varchar(50) nome, etc.. }
create table pessoa_fisica { integer pessoa_key primary key references pessoa(pessoa_key), number(12) cpf, etc.. }
create table socio { integer pessoa_key primary key references pessoa_fisica(pessoa_key), number(4,2) participacao, etc.. }

note que a chave primária de pessoa_fisica é a mesma de pessoa com um foreing key para a pessoa (indica que pessoa_fisica "é uma" pessoa, a chave primária de socio é a mesma de pessoa_fisica, indica que socio "é uma" pessoa física).

Você poderia ter um método no SocioDao, por exemplo, listarSocios em que você retornaria um lista de Socios com todos os dados de pessoa, pessoa_fisica e socio, algo do tipo

select *
from pessoa p
inner join pessoa_fisica pf on (p.pessoa_key = pf.pessoa_key)
inner join socio s on (s.pessoa_key = pf.pessoa_key)

para cada registro retornado popularia-se um objeto socio e adicionaria-se em uma lista (java.util.List), assim você teria uma lista com todos os Sócios, essa não é a única abordagem para esse problema, alguma pessoas prefeririam encarar que sócio é um papel que uma pessoa desenpenha e não que sócio é uma pessoa, e então utilizaria outra forma resolver isso... Essa é abordagem da UML em cores por exemplo, vale dar uma olhada. Pesquise por UML em Cores, de Peter Coad...

Espero ter ajudado um pouco...

Abraço,
André Faria


Obrigado por reponder ffranceschi.

Com certeza o maven é uma ferramenta muito poderosa, que faz muito mais que build, a utilizo para gerar documentação, relatórios, site do projeto, deploy, e execução de testes unitários em ambiente de integração contínua.

Voltando ao projeto, estou pensando na seguinte estrutura:

| / pom.xml (projeto)
|-- projeto-ear
| `-- pom.xml
|-- projeto-ejb
| |-- src
| | `-- main
| | `-- resources
| | `-- META-INF
| | `-- ejb-jar.xml
| `-- pom.xml
|-- projeto-core (model e DAO)
| `-- pom.xml
|-- projeto-util
| |-- projeto-logging
| | `-- pom.xml
| |-- projeto-validator
| | `-- pom.xml
| `-- pom.xml
|-- projeto-web
| |-- projeto-comercial
| | |-- src
| | | `-- main
| | | `-- webapp
| | | |-- WEB-INF
| | | | `-- web.xml
| | | `-- index.jsp
| | `-- pom.xml
| `-- pom.xml
| |-- projeto-financeiro
| | |-- src
| | | `-- main
| | | `-- webapp
| | | |-- WEB-INF
| | | | `-- web.xml
| | | `-- index.jsp
| | `-- pom.xml
| `-- pom.xml
|-- src
| `-- main
| `-- resources
`-- pom.xml

O que vocês acham? Já trabalharam com esse tipo de estrutura?

Estou me baseando no archetype j2ee-simple
http://maven.apache.org/plugins/maven-archetype-plugin/examples/j2ee-simple.html

Você está no caminho certo, como PessoaFisica herda todos os atributos e comportamentos de Pessoa, você poderia, por exemplo, implementar um método obterPessoaFisica em uma classe de acesso a dados (DAO), em que você faria uma query do tipo (select * from pessoa_fisica natural join pessoa) e popularia todos os dados do objeto PessoaFisica inclusive os herdados de Pessoa. Essa prática está correta.

Você já leu algo sobre Hibernate ou JPA? A literatura sobre mapeamento objeto relacional ajuda bastante nesse tipo de problema.
http://www.hibernate.org

Abraço,
André Faria
Olá Pessoal,

Estou estudando maneiras de modularização de projetos, e estou com dificuldades de encontrar referências sobre assunto.
A idéia é dividir o aplicativo em vários módulos: financeiro, comercial, logística, rh, etc...
Pensei em duas maneiras de realizar a modularização: a primeira delas seria que cada módulo geraria um pacote .ear com um pacote.war e seus ejbs, e utilizaria uma estrátegia de single sign on (sso) para login, porém algumas pessoas com quem conversei disseram que tiveram problemas sérios com o servidor de aplicação usando essa estratégia, a segunda delas seria dividir a aplicação apenas logicamente em vários módulos, porém, utilizar o maven para gerar um único .ear com um único .war dentro, e para que aplicação não caia, utilizar recursos de hot-deploy e cluster do servidor.

Se alguém tiver alguma referências sobre esse tipo de coisa, por favor, me avise.

Abraço,
André Faria
a primeira coisa que eu lhe digo é que esse mercado é fraco para java.


Há controversias, acredito que o mercado de aplicações desktop na plaforma java vem crescendo bastante, e existe grande possibilidade de crescer exponencialmente com novas tecnologias como JavaFx.

Quanto ao netbeans...ele facilita muito a sua vida, mas poucos gostam dele...quando passei a programar profissionalmente tive q aprender a usar o eclipse (eu usava netbeans) e não me arrependo tão pouco volto pro netbeans....


A comunidade do Netbeans vem tomando proporções muito maiores nos ultimos meses, também prefiro utilizar o eclipse, mas acho que o Netbeans oferece recursos de categoria para construção de aplicações profissionais, e inclusive possui algumas funcionalidades que o eclipse, ao menos ainda, não oferece.

e o sistema operacional linux ou windows tb tanto faz, certo? afinal java é multiplataforma... mesmo q eu desenvolva em windows roda legal em linux?


Certo!!!

* Processador: Intel Celeron D331
* Clock (Ghz): 2,66 Ghz
* Memória: 256 MB RAM DDR (comp c/ vídeo) expansível até 2 GB
* 256 KB L2 Cache ? 533 Mhz

se trocar essa memória por uma de 512 ou 1gb ele já fica mais do q bom, ou não?


É um pouco complicado opinar na infra sem conhecer todos os seus requisitos, mas para uma aplicação simples java desktop com hibernate/jpa, parace bem razuável.


Abraço,
André Faria
Seus problemas acabaram:

Aqui tem tudo que você precisa saber sobre integração contínua, testes unitários e testes de aceitação.
http://www.improveit.com.br/xp

Abraço,
André Faria
Alguém conhece o framework Enunciate http://enunciate.codehaus.org/index.html?
Gostei muito da maneira que ele gera a documentação dos webservices mas não entendi exatamente tudo o que ele se propõe a fazer.
Se alguém tiver maiores informações e puder ajudar...
rodrigo_ctba wrote:Baixei a versão 2.0.5 e ainda não consigo chamar um método de uma action.
ex: http://localhost:8080/appStruts2x/Setor_visualizar.action
Será que isso é "bug" da versão ainda !?!?!?!


Como está o seu struts.xml?
Versão 2.05 Quentinha...
http://people.apache.org/repo/m2-snapshot-repository/org/apache/struts/struts2-core/2.0.5-SNAPSHOT/
Obrigado Pessoal....
Testei os dois, mas realmente achei o Trac muito bom...
Será que dá ligar ele com o CVS ou somente SVN?
Alguém conhece algum issue tracker, do tipo do Jira, só que free?
Quais os melhores?
Spring 2 + Struts 2 (WebWork) + SiteMesh + Hibernate é uma combinação bem poderosa...
Claro, com certeza!
Gostaria de poder utilizar este tópico durante todo o processo de desenvolvimento do trabalho, e contar com o apoio de vocês. Sem dúvida, a monografia com os resultados será disponibilizada para acesso de todos. Mais uma vez agradeço a todos.
 
Índice dos Fóruns » Perfil de andrefariagomes » Mensagens enviadas por andrefariagomes
Ir para:   
Powered by JForum 2.1.8 © JForum Team