Vector

3 respostas
L

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…

3 Respostas

camillabrasilia

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.

E

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:

E

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

Criado 3 de setembro de 2003
Ultima resposta 4 de set. de 2003
Respostas 3
Participantes 3