Vector

Boa tarde à todos

Meu problema é o seguinte:

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…

Por favor me ajudem.!!!

Desde já agradeço…

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:

LinkedList list = ...
ListIterator iter1 = list.listIterator();
ListIterator iter2 = list.listIterator();
iter1 = next();
iter1.remove();
iter2.next(); // lança uma ConcurrentModificationException

estude esta parte de Coleções que é muito interessante e vai resolver o seu problema. :smiley:

tembém existem métodos para inserir no início, meio e fim da lista com segurança. :wink: