Tenho um servidor interno, onde o mesmo armazena arquivos .html, .jsp e .java.
Estou utilizando o BD Access via ODBC.
em uma das classes, tenho um vector que armazena itens conforme solicitado pelo usuário, através desse método:
Vector items;
public ShoppingCart()
{
items = new Vector();
}
[i]public void addItem(Item newItem)
{
items.addElement(newItem);
}[/i]
O problema, é que se eu rodar a aplicação de qualquer máquina através do IP do servidor + :8080, funciona normalmente, ou seja, adiciona os itens no vector e dispõe ao cliente através do localhost, mas se eu acessar a página através do domínio, não adiciona, sobrepõe o item anterior e adiciona o novo…
Tenho o Tomcat, e duas placas de rede para roteamento, uma com ip para intranet e outra com ip para internet. provavelmente devo estar pecando em algum redirecionamento de IP…
Já aconteceu esse problema comigo também.
Toda vez que eu atualizava a página, o menu crescia de forma que tinha 10 itens no menu, e depois que atualizava o menu duplicava e aparaceia 20 e ia duplicando os itens do menu cada vez que eu atualizava a página. Pelo que eu entendi foi que ficava na memória e quando eu atualizava ele pegava os itens da memória mas os que chamava do banco.
Infelizmente eu não consegui entender a causa desse problema muito, mas eu coloquei antes do método que lista todos os itens do vector o método que limpa o vector. Dessa forma deu certo, só não sei se é a mais correta.
Tente usar uma LinkedList que implementa uma fila duplamente encadeada e seu método listIterator que retorna um objeto do tipo ListIterator que retorna uma ConcurrentModificationException caso haja uma modificação concorrente na lista.
O exemplo abaixo é do livro Core Java vol. II: