| Autor |
Mensagem |
|
|
Aqui o meu erro parece um pouco diferente, tentei as alternativas já citadas mas sem sucesso. Só consegui enxergar a Exception quando habilitei o TRACE no log. Estranho é que estava funcionando e derepente parou, como uso spring pra controle de transação, nenhuma transação está sendo gravada no banco, pois ele sempre faz rollback. Criei um projeto zerado, com umas classes simples e funciona, mas em meu projeto da esse erro, talvez eu tenha mexido em alguma coisa que ocasionou isso, mas não faço idéia, pois aparentemente tudo está normal.
Apenas uma obs, troquei a lib do 3.4 por uma mais antiga tipo 3.3 e o mesmo erro permanece.
|
 |
|
|
wpivotto wrote:
Então, uma maneira de fazer isso é assim: https://gist.github.com/1312993
Utilizando um interceptor que bloqueia qualquer requisição fora do servidor (127.0.0.1)
Show de bola, essa eu já implementei, mas o esquema do vraptor com o quartz ainda não, mas em breve farei.
Agora uma outra questão, implementei dois jobs aqui, ambos rodam de 1 em 1 minuto, porém um dos jobs demora 5 minutos pra executar, enquanto o mais demorado está executando o outro não roda ele fica esperando o de 5 terminar. Alguém saberia me dizer porque isso está ocorrendo? Pois pra mim esses jobs eram multi-thread, não deveriam possuir nenhum tipo de dependência, ou seja, se um dos jobs demorar 30 minutos pra rodar, o outro deveria continuar rodando de 1 em 1 minuto em paralelo, pelo menos esse é o meu conceito... hehehe
[]'s
Leonardo
|
 |
|
|
Parece legal este método, utilizando essa forma, como restringiria no controller a chamada somente apartir dessa task?
|
 |
|
|
Lucas Cavalcanti wrote:injete o ServletContext, assim vc consegue qual é o context-path...
e como vc tá no servidor vc pode chamar por localhost:8080 
Opa funcionou perfeitamente! Thanks!
|
 |
|
|
Lucas Cavalcanti wrote:o problema é que os jobs executam fora de requisições, então vc não pode usar nenhum componente de request ou session...
um dos jeitos de resolver o problema é criar controllers que executam as lógicas e os jobs chamarem urls desses controllers... daí vc faz de um jeito que esses controllers só possam ser chamados desses jobs.
Entendi lucas, obrigado pela dica. Uma dúvida: É possível resgatar, apartir desse job, informações de dominio, contexto e etc? Para não ficar hardcode a chamada da URL, de forma a ficar mais dinâmico. Tentei injetar o HttpServletRequest e também não foi possível.
Mas a dica já resolveu o problema... valew!
|
 |
|
|
Caros, boa tarde.
Em minha aplicação necessito de alguns jobs com scopo de aplicação. E como se sabe não conseguimos injetar os componentes de request nesses jobs de application. Enfim, preciso de vários Daos e outros componentes nesses jobs.
O que devo fazer para utilizar estes componentes em meus jobs? Devo duplicar esses componentes para application scoped? Ou seja duplicar vários daos, sessionfactorys e etc, para poder trabalhar com eles dentro do job? Ou existe outra maneira de fazer isso de forma "correta"?
[]'s
Leonardo
|
 |
|
|
Lucas Cavalcanti wrote:dentro do código do proxy vc tá sempre abrindo uma session nova. A idéia é só abrir se ela ainda não tiver sido abertaa...
guarde a variavel sessionDoSpring como field do CriadorDeSession e só crie se ele estiver nulo
Opa Lucas blezinha!
Agora deixei dessa forma:
Eu estava imaginando que aquela sessionDoSpring morria com o método e que a única que ficava aberta era a session da classe, e mesmo assim, essa seria fechada no método fecha(). E não estava entendendo como estava abrindo tanta session. Agora até o C3P0 está se comportando normalmente, pois antes, mesmo aguardando o timeout das conexões de acordo com a configuração do c3p0 as conexões não eram liberadas.
Talvez tenha outras pessoas com este problema, pois como peguei essa classe da apostila FJ28, creio que outras pessoas devam estar passando por isso também.
Muito obrigado. Vou monitorar a aplicação por enquanto e ver o que acontece. Vlw
|
 |
|
|
Boa tarde.
Caros, estou passando por um probleminha chaaaaaaato com o vraptor + spring. A princípio na minha aplicação, estou usando o Transaction Manager do spring, sem C3P0 nem nada. Depois de um tempo usando a aplicação ela para de funcionar e começa a dar "Too many connections" na hora de abrir as sessões do hibernate.
Tentei colocar o C3P0 para gerenciar as conexões, mas mesmo assim não funciona e o mesmo problema permanece, só que agora a mensagem do c3p0 "pool is already maxed out", ou seja, basicamente a mesma coisa do primeiro caso.
Estou usando uma classe ComponentFactory para criar as sessões para o spring:
É como se ele abrisse as conexões mas não fechasse ou não devolvesse para o pool. Alguém sabe o que se passa? Obrigado.
|
 |
|
|
Caros, vejam se podem me auxiliar neste caso:
Estou tentando montar uma classe pra enviar e-mail, simples porém eu recebo o seguinte erro de autenticação conforme abaixo:
Já testei com JavaMail e Commons Email, o usuário e senha estão corretos, porém o seguinte, no ehlo do servidor de e-mail o auth é apenas "DIGEST-MD5 CRAM-MD5" ou seja não aceita LOGIN PLAIN.
Eu acho que tenho que criptografar essa autenticação de alguma forma, mas não sei como.
Alguém poderia dar um help?
|
 |
|
|
Rodrigo Kossmann wrote:Bom saber da existência desse orphanRemoval. Mas creio que é perigoso fazer isso. É mais seguro vc dizer quais os dados que devem ser deletados do que permitir que o Framework faça. Claro que um projeto bem planejado pode evitar, mas um programador meio desatento pode fazer com que se perca uma quantidade enorme de dados. Acho que quando se trata de Banco de Dados nós devemos diminuir ao máximo a probabilidade de erros.
Sim concerteza... deve ser muito bem testado e bem avaliado o uso desta funcionalidade. Só comecei a buscar informações sobre isso, pois em um sistema grande pode dar muito trabalho ficar se preocupando em remover essas dependencias da base, e o principal uso de um framework é diminuir o trabalho, então vamos utilizar o que ele oferece, mas vamos testar muito bem antes de colocar na produção
|
 |
|
|
Opa... encontrei algumas informações sobre o parametro orphanRemoval para JPA 2.0, testei e funcionou perfeitamente.
@OneToMany(orphanRemoval=true)
Desta forma, quando der um merge em um objeto que possua um collection, ele irá deixar a base exatamente como no collection no caso de haver menos registros no collection, ele deleta os "orfãos" da base.
Até mais...
|
 |
|
|
Gustavo Sperandio wrote:Você falou bem deveria... eu mesmo não fiz o teste mas não confio nesse processo por isso nesse caso eu faço na mão mesmo.
hehehe... por enquanto estou fazendo na mão também, mas se alguém ai souber algo sobre isso, ou a forma correta de se fazer, seria de grande ajuda. Obrigado.
|
 |
|
|
Olá,
Galera estou numa pequena dúvida. Imaginem a seguinte situação.
Entidade1
Entidade2
Entidade1 pode possuir n Entidade2, ou seja, Entidade2 tem um ManyToOne para Entidade1 e Entidade1 possui OneToMany para Entidade2
Agora imaginem que foi feito um cadastro novo de uma Entidade1 com 3 Entidade2 relacionadas... você fez um merge e no banco foram criados: Entidade1 e 3 Entidade2 relacionadas a Entidade1.
Agora vou atualizar esse registro e na minha Entidade1 estou deixando apenas 2 Entidade2 e dou um merge, o que acontece na base? No meu caso as 3 Entidade2 estão permanecendo lá, e não apenas 2, gostaria que uma delas fosse excluida, eu tenho que fazer isso na mão? O Hibernate não deveria fazer isso automático, quando eu tenho a Entidade1 com apenas 2 Entidade2 dentro, e dou um merge, ele não deveria deixar o banco de acordo com meu objeto, pq a outra Entidade2 ainda fica lá?
Não sei se fui claro o suficiente, qualquer coisa tento explicar melhor. Obrigado!
|
 |
|
|
Caros, boa tarde.
Fiz uma configuração aqui no meu apache com ajuda aqui do fórum http://www.guj.com.br/java/235972-configuracao-javatomcatapache#1215763 para que quando eu acessar o site www.site.com.br já caia no conexto da aplicação java. ou seja, eu não preciso acessar www.site.com.br/contexto pois o apache já faz isso internamente.
Até ai tudo bem. O problema aparece quando eu uso o redirectTo do Vraptor, pois quando dou um result.redirectTo(this.class).index() por exemplo... ao invés dele redirecionar para www.site.com.br/index ele manda com o contexto junto, tipo www.site.com.br/contexto/index (o que está certo)
Porém como meu apache já está processando internamente www.site.com.br/contexto quando ele faz o redirect, a chamada real interna fica assim www.site.com.br/contexto/contexto/index e isso causa um 404 pois eu tenho 2x o contexto, uma do apache e outra que o vraptor ta jogando na frente.
Alguém sabe como posso resolver essa situação, seja mexendo no apache ou fazendo um redirect diferente?
|
 |
|
|
Opa, está habilitado, está funcionando... o problema é que como coloquei o proxy na raiz "/" todas as requisições vão para o tomcat. Mas eu dei um jeito da seguinte forma:
Criei um subdominio que aponta apenas para o apache! o único trabalho será criar um esquema nas views que sempre aponte para static.
Obrigado pelas dicas... valew!
|
 |
|
|
|
|