Mensagens enviadas por: EderBaum
Índice dos Fóruns » Perfil de EderBaum » Mensagens enviadas por EderBaum
Autor Mensagem
Atualmente uso esta solução aqui -> http://patapage.com/applications/pataPage/site/test/testSanitize.jsp

No entanto, olhando por alto a solução que você enviou parece ser mais robusta, pois esta ai de cima tive de alterar muitos Bugs que encontrei.

Já a outra solução do owasp, tive de descartar, pois em alguns casos ao limpar algum texto, a coisa simplesmente travava minha aplicação usando toda memoria RAM
Pelo que vejo não é o C3p0 que está sendo inicializado a cada requisição, e sim toda inicialização do sistema de Persistência do Hibernate.

Meu palpite é que tem algo realmente errado no seu codigo.
Põem o código do Servlet aqui!!!

Facilitaria nossa vida.

Como sabe que o C3p0 está iniciando varias vezes?

Tente descrever o maior numero de detalhes possiveis. As vezes o problema pode estar em algo que vocé nem imagina.
Neste cenário então você teria 03 possibilidades.

1 - Ler diretamente o tamanho do arquivo com a classe File (Se for o caso).

2 - Transformar o InputStream em ByteArrayOutputStream, chamar o metodo toByteArray() e ver seu tamanho.

3 - Ler Byte a Byte e somar.
Não há como determinar o tamanho de um InputStream sem ler ele por inteiro antes.
Depois que eu fiz o upgrade do meu Hibernate para a versão 3.6, que utiliza o JPA 2.0 estou enfrentando um problema muito cabeludo.
Não sei pq diabos em várias SELECTS o dito cujo está fazendo LOCK das tabelas, e consequentemente as vezes travando minha aplicação.

Usei o comando no MYSQL "show full processlist" para saber todas as Querys ativas, e veja algumas que me apareceram.



Observe que em "State", temos a informação "Locked".
Para tentar contornar este problema, já fiz coisas como:

- Definir o LockModeType para LockModeType.NONE em todas as operações de "EntityManager.find"


- Definir o LockModeType para LockModeType.NONE na operação que executa exatamente as 03 primeiras queryes em estado Locked.


Mas mesmo assim o problema continua a aparecer.
As querys NÃO ESTÃO entre "EntityTransaction.begin()" e "EntityTransaction.commit()".
Alguem já enfrentou isso?

Como solucionar?
Sim exatamente.
Apenas inverti as linhas.

Como você podem ler na discução acima imaginem que o parametro "texto" tem um tamnho de 10MB.
A leitura desta informação começará quando o primeiro byte deste parãmetro começar a ser enviado pelo navegador do cliente e só acabará quando tudo estiver no lado do servidor (Imagine isso numa conexão discada).

Enquanto isso o arquivo "C:\\Arquivo.txt" fica "esperando" até o envio de dados estar completo.

O que não ocorre no segundo caso.
Olha...

Na verdade você deveria primeiramenta processar o Upload, e depois você grava onde quiser (Disco, BD, RAM, Em Marte... rsrsrsrs)

Utilize este API aqui oh -> http://commons.apache.org/fileupload/using.html

O Arquivo que você está Upando é um InputStream, não importa onde você queira guardar.
Acho que na verdade você deve colocar a coisa dentro da pasta "webapps".

É ali que sua aplicação deve estar para rodar.
Geralmente um arquivo ".war"
schranko wrote:Com relacao a conexao com a base de dados, lembre-se que de qualquer forma nao eh interessante voce obte-la
no contexto de um Servlet, seja localmente ou como variavel de instancia.


Na verdade só citei isso pq foi a primeira coisa que veio na cabeça. Uso Pool de Conexão, JPA, etc...
Mas acho interessante este detalhe da leitura dos dados pois um código assim:



É menos eficiente que este:

Estive pesquisando pela net e não achei quase nada falando sobre isto, mas minha duvida é relativamente simples.

Imagine que enviei um formulário via POST com apenas dois campos.
Titulo -> Um String de poucos Bytes
Conteudo -> Um String enorme, com talvez 2MB.

Minha duvida é quanto será a chamada do metodo doPost do Servlet.
A) Este método só é chamado quando o envio de tudo estiver em 100% com o Stream completinho no servidor?
B) Assim que a requisição "toca" o servlet, o método doPost já é chamado, mesmo com os dados parcialmente enviados, cabendo a este método ler o Stream de dados.

Pelo que trabalhei com Upload de arquivos, a resposta lógica seria a B.
Tal pergunta é extremamente pertinente, pois através desta resposta saberei onde melhor colocar uma abertura de conexão com o banco de dados por exemplo (Antes ou depois de ler todos os dados).
De vez em quando acho estes topicos mortos e acabo rescucitando.... rsrsrsrsr



Esta trigger ai vai se repetir a cada 59 minutos Ciclicamente.
Opa

O topico é antigo, mas acho que ainda vale responder pois acho que ficou no vazio.

Use esta biblioteca aqui -> http://code.google.com/p/google-gson/

Eu tenho uma aplicação que usa JPA e Hibernate com 06 bases de dados diferentes.

Para isso eu gero o EntityManagerFactory via código

Atualizei a versão do Meu Hibernate Search para a 3.1.1.GA
Não sei o que acontece, mas ele parou de indexar meus arquivos e quando olho no diretório onde ele gravaria os arquivos de indexação não tem nada lá. No entanto basta eu voltar para a versão enterior do API que fica tudo normal.

Veja ai alguns dos meus códigos

Classe anotada:


Código onde faço indexação manual


properties configuradas:


Como dito, isso ai em cima funciona 100% na versão mais antiga do Hibernate Search, na mais nova não.
O que será que acontece?
 
Índice dos Fóruns » Perfil de EderBaum » Mensagens enviadas por EderBaum
Ir para:   
Powered by JForum 2.1.8 © JForum Team