[java-list] RE:_[java-list]_Herança_Multipla_-_enfim_uma_discussão_calma...

2001-10-05 Por tôpico Ricardo Santiago


Programando para interfaces.
A sitação do livro do GOF é excelente. Mas gostaria de
colocar um outro ponto de vista.
Hoje além da escola que prega o design antecipatório
de software (que é onde os design patterns entram)
existe uma outra escola de redesign constante (onde
refactoring entra).
Refactoring é exatamente redesign, é mudança de design
de código já escrito. Para que serve e para onde leva?

Segundo esta filosofia, você deve fazer sempre a coisa
mais simples que possa funcionar (desde que esta coisa
simples não contenha nenhum código duplicado).
Acredita-se que o melhor estado do software no momento
da mudança é: simples. Se for simples é fácil de
mudar.
Contudo, se você fez a coisa mais simples que pudesse
funcionar, com certeza não criou interfaces e
flexibilidades desnecessárias (no momento).
Mas e agora quando chega a hora de inserir uma nova
funcionalidade, o código não está preparado! Não! Mas
está simples e agora é a hora de aplicar refactoring.
Se a nova funcionalidade não se encaixa bem no
software como está você faz as mudanças necessárias
para que ele ganhe um novo design, flexivel APENAS
onde é necessário.

Esta filosofia vem da idéia de que atualmente o mundo
dos negócios e das tecnologias muda muito rápido, e
você não pode prever TODAS as mudanças, por isso um
design antecipatório pode não flexibilizar pontos que
seriam necessários no futuro e ao mesmo tempo
adicionar complexidade por flexibilizar pontos que não
seriam necessários no futuro.

Estas idéias são extremamente práticas e hoje são
adotadas por várias metodologias de software
conhecidas como Agile (http://agilealliance.org)
Umas das metodologias mais conhecidas e bem
estruturadas nesta linha é eXtreme Programming ou XP.
(http://www.extremeprogramming.org/)

Para uma discussão nacional sobre o assunto, você pode
se tornar membro dos XPers, grupo nacional de estudo e
divulgação de XP (http://groups.yahoo.com/group/xpers)

O equivalente do livro do GOF (Design Patterns) no
pensamento de refactoring é:
Refactoring - Improving the Design of Existing Code
Autor: Martin Fowler.

Nota Final: Após o uso de refactoring, muitos design
patterns acabarão sendo aplicados. A vantagem é que
você os aplica apenas onde e quando são necessários e
não logo de cara onde você PENSA (ou PREVÊ) que
sejam necessários. (Os seres humanos não são muito
bons em previsões).

Ricardo Munhoz Santiago




__
Do You Yahoo!?
NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] Re: Artigo Java x C#

2001-10-04 Por tôpico Ricardo Santiago


Cara, neste caso voce esta MUDANDO a referencia que
voce recebeu.
Voce esta criando uma NOVA referencia e tentando
atribuir à referencia que voce recebeu como parametro.

Mas a passagem de objetos EH por referencia (as
referencias sao passadas por valor)

Exemplo:

class Numero {

  private int value;

  public Numero(int value) {
this.value = value;
  }

  public void inc() {
value++;
  }

  public int getValue() {
return value;
  }

  public static void main(String [] s) {
Numero num = new Numero(1);
System.out.println(num  + num.getValue());
increment(num);
System.out.println(num  + num.getValue());
  }

  private static void increment(Numero num) {
num.inc();
  }

}

Ricardo Munhoz Santiago

--- Leonardo Souza Mario Bueno [EMAIL PROTECTED]
wrote:
 Nain, nain. Java não tem passagem por referencia nem
 para objetos.
 
 Ex:
 
 public void inc(Integer i) {
 i = new Integer(i.intValue()++);
 System.out.println(i =  + i); // i = 2
 }
 
 i = new Integer(1);
 inc(i);
 System.out.println(i =  + i); // i = 1
 
 Resultado:
 
 i = 2
 i = 1
 
 Ao chamar inc(i) é passada uma referencia ao objeto
 i por valor.. ou seja,
 mudanças na referencia dentro do metodo não terão
 efeito fora dele..
 
 []'s,
 
 Leonardo.
 
 - Original Message -
 From: Carlos E O Chierici [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Wednesday, October 03, 2001 1:35 PM
 Subject: Re: [java-list] Re: Artigo Java x C#
 
 
  A passagem de parametros em Java funciona assim:
 
  - P/ objetos: por referencia
  - P/ primitivos: por valor
 
  Veja o exemplo:
 
  public class Teste
  {
 public void run()
 {
TObj obj = new TObj();
obj .i = 3;
System.out.println(obj.i); // obj.i = 3
NovoInt(obj);
System.out.println(obj.i); // obj.i = 5
 }
 
 public void NovoInt(TObj meuObj)
 {
meuObj.i = 5;
 }
 
 public static void main(String args[])
 {
Teste t = new Teste();
 t.run();
 }
  }
 
  class TObj
  {
 public int i;
  }
 
 
  []s
 
  Carlos E O Chierici
  [EMAIL PROTECTED]
 
  - Original Message -
 
  From: [EMAIL PROTECTED]
  To: [EMAIL PROTECTED]
  Sent: Wednesday, October 03, 2001 9:52 AM
  Subject: RE: [java-list] Re: Artigo Java x C#
 
 
  Sérgio,
 
  Eu gostaria de fazer uma pequena correção no seu
 email.
 
  Java não possui passagem por referência. Somente
 por valor. Existe uma
 forma
  de simular passagem de parâmetros por
 referência, utilizando os objetos
 ou
  tipos primitivos armazenados em um array, por
 exemplo. Mas não existe
  passagem por referência.
 
  Antes que o alguém dê pulinhos de alegria, eu
 pergunto: e qual é o
 problema?
  Alguém por favor, apresente um artigo
 demonstrativo, baseado em testes de
  performance ou de algum requisito que mostre qual
 é o grandisíssimo
 problema
  de Java utilizar passagem por valor, e não por
 referência? Mesmo que haja,
  isso significa que Java é ruim?
 
  Abraços,
  Denard
 
 
  -- LISTA SOUJAVA
 
  http://www.soujava.org.br  -  Sociedade de
 Usuários Java da Sucesu-SP
  dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
  regras da lista:
 http://www.soujava.org.br/regras.htm
  para sair da lista: envie email para
 [EMAIL PROTECTED]
 

-
 
 
 
 -- LISTA SOUJAVA
  
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP 
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED] 

-
 


__
Do You Yahoo!?
NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] Passando por referencias !!!!!!!!

2001-10-04 Por tôpico Ricardo Santiago


Acho que voce nao prestou BEM atencao no exemplo.
Eu estava efetivamente mudando a REFERENCIA para outra
String, e nao usando algum metodo que modifique seu
estado interior. Que cairia na estoria das classes
imutaveis

Mudando para uma classe mutável, exemplo StringBuffer
veja o método:

public void mudaStringBuffer(StringBuffer b) {
   b.append(mais texto);
}

E claro que as mudanças refletirao no parametro depois
que o metodo terminar.

mas se o metodo fosse

public void mudaStringBuffer(StringBuffer b) {
   b = new StringBuffer(mais texto);
}

As mudanças nao refletiriam.

Nao tem nada a ver a estoria de objeto mutavel e
imutavel, o que interessa eh que as referencias sao
passadas por valor. Os objetos sao passados por
referencia. 

Eu estava tentando mostrar o obvio! 

Ricardo Munhoz Santiago

--- Sergio Oliveira Jr. [EMAIL PROTECTED] wrote:
 Ricardo,
 
 O objeto string não vale porque é uma classe
 IMUTÁVEL. Não há como trocar o 
 valor da String sem criar outro objeto, ou seja, sem
 criar outra referencia 
 !!
 
 Classes Imutáveis são muito interessantes porque são
 THREAD-SAFE, evitando 
 condições de corridas e bugs intermitentes. Classes
 mutáveis são perigosas e 
 podem introduzir brechas de segurança no seu código,
 principalmente se você 
 estiver escrevendo uma API para um outro programador
 utilizar. (Alguém aí 
 ainda tem a documentação do Java 1.0 ??? Acho que a
 classe String no começo 
 era Mutável e só depois a Sun percebeu que isso não
 era bom e transformou 
 ela em Imutável. Mas não tenho certeza disso.)
 
 Se eu tenho um objeto MUTÁVEL como um Vetor por
 exemplo, eu posso 
 modificá-lo dentro da função sem problemas.
 
 Não é muito difícil construir uma String Mutável e
 aí eu poderia fazer um 
 Swap(s1, s2) pagando o preço de ter que instanciar
 duas novas Strings. O 
 Sven foi muito feliz levantando essa bola do
 Swap(a,b) e acabou me 
 deixando com a seguinte dúvida:
 
 Em C++ dá para fazer um Swap de Objetos Imutáveis
 ??? Se dá gostaria de 
 entender como o C++ faz isso, isto é, o que acontece
 por trás do pano.
 
 --
 Sergio Oliveira Jr.
 Sun Certified Java Programmer
 Desenvolvedor e Consultor Java
 Empresa SmartJava
 --
 
 
 
 From: Ricardo Santiago [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Subject: RE: [java-list] Re: Artigo Java x C#
 Date: Wed, 3 Oct 2001 09:16:54 -0700 (PDT)
 
 
 Cara, vamos deixar claro:
 Tudo em java é passado por valor.
 MAS, você só mantém REFERENCIAS para objetos (ou
 pointeiros se achar melhor).
 Logo, todo objeto é passado por referencia visto
 que a
 referencia é que é passada por valor!
 
 Isso não implica de forma alguma em perda de
 performance, simplesmente significa que qq váriavel
 que você passar como paramêtro, se for modificada
 dentro do método invocado,não refletirá as mudanças
 quando o método retornar
 
 Como em:
 
 String s = test;
 int i = 1;
 
 mudeOsValores(s, i);
 
 System.out.println(s + 1); // == test1
 
 Onde o metodo mudeOsValores contem o seguinte
 codigo
 
 public void mudeOsValores(String s, int i) {
s = outracoisa;
i = 2;
 }
 
 Ricardo Munhoz Santiago
 --- [EMAIL PROTECTED] wrote:
   Sérgio,
  
   Eu gostaria de fazer uma pequena correção no seu
   email.
  
   Java não possui passagem por referência. Somente
 por
   valor. Existe uma forma
   de simular passagem de parâmetros por
 referência,
   utilizando os objetos ou
   tipos primitivos armazenados em um array, por
   exemplo. Mas não existe
   passagem por referência.
  
   Antes que o alguém dê pulinhos de alegria, eu
   pergunto: e qual é o problema?
   Alguém por favor, apresente um artigo
 demonstrativo,
   baseado em testes de
   performance ou de algum requisito que mostre
 qual é
   o grandisíssimo problema
   de Java utilizar passagem por valor, e não por
   referência? Mesmo que haja,
   isso significa que Java é ruim?
  
   Abraços,
   Denard
  
   -Original Message-
   From: Sergio Oliveira Jr.
   [mailto:[EMAIL PROTECTED]]
   Sent: terça-feira, 2 de outubro de 2001 22:56
   To: [EMAIL PROTECTED]
   Cc: [EMAIL PROTECTED];
   [EMAIL PROTECTED]
   Subject: [java-list] Re: Artigo Java x C#
  
   Mauro,
  
   Não era a minha intensão te tirar do sério. Não
 vejo
   problema algum em me
   engajar num papo com você face-to-face. Só estou
   conversando com você via
   email por ser mais conveniente, afinal a
 tecnologia
   está aí para facilitar a
  
   nossa vida, certo?
  
   Vou continuar falando racionalmente, apesar de
 não
   ver nenhum problema em te
  
   encontrar para um papo mais descontraído.
  
   Alguns absurdos que vc escreveu:
  
   - Java não possui todos os tipos derivados de
   ancestral comum:
  
   Possui sim... Além de possuir tipos primitivos
 mais
   leves, que por sua vez
   possuem suas classes equivalentes (Wrappers).
 Todas
   são derivadas da class
   Object.
  
   - Java não possui Structs:
  
   Realmente não possui

RE: [java-list] Re: Artigo Java x C# GEA2

2001-10-04 Por tôpico Ricardo Santiago


Não estou querendo te chamar de louco, mas acho que
voce deveria ter testado antes de dizer que sempre
funcionou errado.
Por voce mesmo nao testa?

public class ProvaDaPassagemPorValor {

  public static void main(String [] s) {
String s = test;
int i = 1;
mudeOsValores(s, i);
System.out.println(s + i);

  }

  private static void mudeOsValores(String s, int i) {
 s = outroValor;
 i = 2;
  }

}

Ricardo Munhoz Santiago

--- Wild Boar Wannabe [EMAIL PROTECTED]
wrote:
 
  Perae !!! Eh claro que refletira as mudancas !!!
 Apos
 ser chamado o metodo mudeOsValores() o inteiro e a
 String mandados por parametro terao seus valores
 mudados !!! Ou entao eu tou louco !!! Por que sempre
 foi assim pra mim ...
 
  --- Ricardo Santiago [EMAIL PROTECTED]
 escreveu:  
  Cara, vamos deixar claro:
  Tudo em java é passado por valor.
  MAS, você só mantém REFERENCIAS para objetos (ou
  pointeiros se achar melhor).
  Logo, todo objeto é passado por referencia visto
 que
  a
  referencia é que é passada por valor!
  
  Isso não implica de forma alguma em perda de
  performance, simplesmente significa que qq
 váriavel
  que você passar como paramêtro, se for modificada
  dentro do método invocado,não refletirá as
 mudanças
  quando o método retornar
  
  Como em:
  
  String s = test;
  int i = 1;
  
  mudeOsValores(s, i);
  
  System.out.println(s + 1); // == test1
  
  Onde o metodo mudeOsValores contem o seguinte
 codigo
  
  public void mudeOsValores(String s, int i) {
s = outracoisa;
i = 2;
  }
  
  Ricardo Munhoz Santiago
  --- [EMAIL PROTECTED] wrote:
   Sérgio,
   
   Eu gostaria de fazer uma pequena correção no seu
   email.
   
   Java não possui passagem por referência. Somente
  por
   valor. Existe uma forma
   de simular passagem de parâmetros por
  referência,
   utilizando os objetos ou
   tipos primitivos armazenados em um array, por
   exemplo. Mas não existe
   passagem por referência.
   
   Antes que o alguém dê pulinhos de alegria, eu
   pergunto: e qual é o problema?
   Alguém por favor, apresente um artigo
  demonstrativo,
   baseado em testes de
   performance ou de algum requisito que mostre
 qual
  é
   o grandisíssimo problema
   de Java utilizar passagem por valor, e não por
   referência? Mesmo que haja,
   isso significa que Java é ruim?
   
   Abraços,
   Denard
   
   -Original Message-
   From: Sergio Oliveira Jr.
   [mailto:[EMAIL PROTECTED]] 
   Sent: terça-feira, 2 de outubro de 2001 22:56
   To: [EMAIL PROTECTED]
   Cc: [EMAIL PROTECTED];
   [EMAIL PROTECTED]
   Subject: [java-list] Re: Artigo Java x C#
   
   Mauro,
   
   Não era a minha intensão te tirar do sério. Não
  vejo
   problema algum em me 
   engajar num papo com você face-to-face. Só estou
   conversando com você via 
   email por ser mais conveniente, afinal a
  tecnologia
   está aí para facilitar a
   
   nossa vida, certo?
   
   Vou continuar falando racionalmente, apesar de
 não
   ver nenhum problema em te
   
   encontrar para um papo mais descontraído.
   
   Alguns absurdos que vc escreveu:
   
   - Java não possui todos os tipos derivados de
   ancestral comum:
   
   Possui sim... Além de possuir tipos primitivos
  mais
   leves, que por sua vez 
   possuem suas classes equivalentes (Wrappers).
  Todas
   são derivadas da class 
   Object.
   
   - Java não possui Structs:
   
   Realmente não possui a palavra Structs, mas é
   ridículo simular um C Struct 
   com uma class ou inner class.
   
   - Java não pode passar parametros por
 referencia:
   
   Todos os objetos Java são passados por
 referencia.
   Qualquer principiante em 
   Java precisa saber disso.
   
   - Java não possui Propriedades:
   
   Já ouviu falar em JavaBeans ??? Tb existe uma
  classe
   Properties que faz isso
   
   facilmente.
   
   - Java categoricamente não possui eventos nem
   delegate:
   
   Toda a GUI do Java é orientada a eventos e a
   listeners.
   Java não possui ponteiros para funções, mas
 possui
   interfaces que podem 
   facilmente e de uma forma mais elegante e
 poderosa
   realizar callbacks.
   
   - Java não possui Atributos:
   
   Não sei o que vc quiz dizer com isso, mas Java
   possui uma API de Reflection 
   poderosíssima.
   
   - Java não possui Ponteiros:
   
   Ainda bem! Referencia = Ponteiro com a excessão
  que
   não podemos fazer 
   operações aritiméticas com referencias.
   Todo mundo sabe que os ponteiros sempre foram a
   maior fonte de bugs, falhas 
   de segurança, vírus e dores de cabeça para os
   programadores C.
   
   - Java não possui Forech: loop para varrer
 arrays
  e
   coleções
   
   Dê uma olhada na API Collections. Vc vai ficar
   impressionado com a 
   qualidade, eficiência e performance dessa API.
   
   - Java não possui Campos readonly.
   
   Lógico que possui. Basta utilizar final.
   
   - Java não possui Documentação integrada em XML.
   
   Javadoc serve exatamente para isso que vc sugere
   como vantagem do C#.
   
   - Java

[java-list] Re: REFERENCIA E VALOR (De uma vez por todas)

2001-10-04 Por tôpico Ricardo Santiago



Pessoal, antes de mais nada, o final na declaração
da classe NÃO A TORNA IMUTAVEL, a torna incapaz de ser
extendida via HERANÇA. Nada ALEM DISSO. O final em
uma VARIAVEL é outra estoria ... ai sim a torna
imutavel.

Voltando a discussão de passagem por referencia ou
valor e esclarecendo de uma vez por todas:

Os parametros sempre são passados por VALOR.
Isso significa que é feita uma COPIA da variavel que é
passada no parametro.

Isso significa que passar um parametro tipo int é a
mesma coisa que criar uma NOVA variavel tipo int.

int valor = 10;
int parametro = valor;

Agora se voce mudar a variavel parametro para 20 a
variavel valor nao vai mudar CERTO? 

A mesma coisa para objetos. 

StringBuffer valor = new StringBuffer(test);
StringBuffer parametro = valor;

se voce invocar um metodo na variavel parametro como

parametro.append(maistest);

A mudanca podera ser notada mesmo na variavel valor
CERTO?
Se voce attribuir outro valor a parametro, dai as
mudanças não serão notadas na variavel valor

parametro = new StringBuffer(maistest).

Pra encerrar vai o PORQUE.

As variaveis que contem OBJETOS apenas apontam para
(geralmente)um endereco de memoria onde os dados do
objeto estao armazenados.
Exemplo:

StringBuffer buffer = new StringBuffer(texto);

o que realmente esta guardado em buffer é um numero de
endereco na memoria digamos 1010.
Quando eu crio outra variavel e attribuo o valor de
buffer, ele contera o mesmo endereco de memoria, ou
seja

StringBuffer buffer2 = buffer;

Tanto buffer2 como buffer tem o mesmo valor 1010 de
endereco de memoria. 
Nesta área da memoria sao armazenados os dados do
objeto, por isso quando voce invocar um metodo em
qualquer das duas variaveis que mudar o valor de algum
dado do objeto, a mudanca sera notada pelas duas
variaveis. Pois ambas estao usando a mesma area de
memoria
Se voce criar outro objeto, ele vivera em outro
endereco de memoria e mudancas em um nao afetarao o
outro, como em

StringBuffer buffer = new StringBuffer(texto);
StringBuffer buffer2 = buffer;
buffer2 = new StringBuffer(mais);

Mudancas em um Objeto NAO afetaram o outro pois
apontam para diferentes areas na memoria.

Esta explicação esta meio simples, mas espero que
ajude quem ainda nao entendeu bem o ponto.

Ricardo Munhoz Santiago


 



--- Gabriel De Munno Francisco
[EMAIL PROTECTED] wrote:
 Tudo bem,
 
 Mas daí você cai no caso da classe imutável já
 explicado num email na 
 lista... O objeto Integer é public final class
 Integer
 
 Por isso, você não pode alterar o valor, somente
 criando um novo objeto...
 
 Gabriel
 
 
 At 20:51 03/10/2001 -0300, Leonardo Bueno wrote:
 Acho que não.. no meu exemplo o metod inc altera o
 valor da copia local de i
 ao fazer a atribuição i = new
 Integer(i.intValue()++); ou estou enganado?
 Novamente: em java, toda a passagem de parametros e
 por valor, inclusive
 quando usamos objetos como parametros... neste caso
 a referencia e passada
 por valor.
 
 []'s,
 
 Leonardo.
 - Original Message -
 From: Gabriel De Munno Francisco
 [EMAIL PROTECTED]
 To: [EMAIL PROTECTED];
 [EMAIL PROTECTED]
 Cc: Leonardo Souza Mario Bueno
 [EMAIL PROTECTED]
 Sent: Wednesday, October 03, 2001 8:27 PM
 Subject: Re: [java-list] Re: Artigo Java x C#
 
 
 Leornardo,
 
 Você está equivocado, no exemplo que você deu, o
 método não está alterando
 o objeto, está simplesmente imprimindo o resultado
 da chamada do método
 intValue() incrementado de 1, por isso não houve
 mudança no valor do objeto
 durante a chamada.
 
 Mas em Java, quando você passa um objeto, vc está
 passando uma referência.
 
 Gabriel
 
 At 17:36 03/10/2001 -0300, Leonardo Souza Mario
 Bueno wrote:
  Nain, nain. Java não tem passagem por referencia
 nem para objetos.
  
  Ex:
  
   public void inc(Integer i) {
   i = new Integer(i.intValue()++);
   System.out.println(i =  + i); // i = 2
   }
  
   i = new Integer(1);
   inc(i);
   System.out.println(i =  + i); // i = 1
  
  Resultado:
  
  i = 2
  i = 1
  
  Ao chamar inc(i) é passada uma referencia ao
 objeto i por valor.. ou seja,
  mudanças na referencia dentro do metodo não terão
 efeito fora dele..
  
  []'s,
  
  Leonardo.
  
  - Original Message -
  From: Carlos E O Chierici
 [EMAIL PROTECTED]
  To: [EMAIL PROTECTED]
  Sent: Wednesday, October 03, 2001 1:35 PM
  Subject: Re: [java-list] Re: Artigo Java x C#
  
  
A passagem de parametros em Java funciona
 assim:
   
- P/ objetos: por referencia
- P/ primitivos: por valor
   
Veja o exemplo:
   
public class Teste
{
   public void run()
   {
  TObj obj = new TObj();
  obj .i = 3;
  System.out.println(obj.i); // obj.i = 3
  NovoInt(obj);
  System.out.println(obj.i); // obj.i = 5
   }
   
   public void NovoInt(TObj meuObj)
   {
  meuObj.i = 5;
   }
   
   public static void main(String args[])
   {
  Teste t = new Teste();
   t.run();
   }

Re: [java-list] Controlando o tamanho de um arquivo !!

2001-10-03 Por tôpico Ricardo Santiago


Se você quer mesmo implementar isso na mão faça o
seguinte:

Crie uma thread nova que monitore o crescimento do
arquivo. Pode ser uma daemon thread.
Mantenha comunicação entre as duas threads, a que
escreve o log e a que monitora o tamanho do arquivo.
Quando a thread que monitora o tamanho do arquivo
detectar que deve particiona-lo, esta deverá notificar
a outra, para que ela TRAVE quaisquer tentativas de
escrita e feche o arquivo.
A thread monitora faz as mudanças necessárias no
arquivo e após terminar notifica novamente a outra
thread para que esta abra o arquivo e volte a atender
os clientes esperando.

Deu pra ter uma idéia?

Você vai ter de estudar um pouco sobre threads e
syncronization efetiva.

Ricardo Munhoz Santiago

--- Alan Alexandre da Silva [EMAIL PROTECTED]
wrote:
 Oi, o problema é que o arquivo vai estar sendo
 usado. Imagine que o arquivo
 de log está recebendo mensagens a todo o momento.
 Então, quando o arquivo
 atingir um determinado tamanho, eu terei que pegar
 seu conteúdo, tranferi-lo
 para outro arquivo(backup) e tornar a fazer o meu
 arquivo de log receber
 mensagens. Várias classes estão jogando mensagens no
 meu arquivo de log. Tem
 alguma sugestão ? Obrigado.
 
 Alan
 
 
 -- LISTA SOUJAVA
  
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP 
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED] 

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] JSP e XML

2001-10-03 Por tôpico Ricardo Santiago


Cara, a mensagem diz:
 
  the document does not contain exactly one root
node

Ou seja o documento não tem um único root element.

Isso significa que voce deve estar fazendo algo como

MinhaTag
/MinhaTag
importxml url='xmlData.jsp'/

Isso não vai funcionar.
Você precisa ter um único root element.
Tente algo como

UniqueRoot
  MinhaTag
  /MinhaTag
  importxml url='xmlData.jsp'/
/UniqueRoot

* É claro que os nomes das tags são só exemplos

Ricardo Munhoz Santiago

--- Ricardo Silva [EMAIL PROTECTED] wrote:
   Seguindo tenho uma pagina JSP que devolve o
 ContentType (text/xml) , o
 que acontece é o seguinte tenho a tag importxml
 dentro
   de uma comando out.println(importxml
 url='xmlData.jsp'/) ; so que estou
 tendo dificuldade em conseguir fazer isto funcionar
 , o resultado é que
 aparentemente funcionou mais nao devo estar
 coneguindo carregar este jsp
 direto pois obtenho um erro
 
   the document does not contain exactly one root
 node
 
   alguem ´já fez algo parecido ou tem a solucao para
 este pequeno grande
 problema?
 
   Agradeco Antecipadamente.
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




RE: [java-list] Re: Artigo Java x C#

2001-10-03 Por tôpico Ricardo Santiago


Cara, vamos deixar claro:
Tudo em java é passado por valor.
MAS, você só mantém REFERENCIAS para objetos (ou
pointeiros se achar melhor).
Logo, todo objeto é passado por referencia visto que a
referencia é que é passada por valor!

Isso não implica de forma alguma em perda de
performance, simplesmente significa que qq váriavel
que você passar como paramêtro, se for modificada
dentro do método invocado,não refletirá as mudanças
quando o método retornar

Como em:

String s = test;
int i = 1;

mudeOsValores(s, i);

System.out.println(s + 1); // == test1

Onde o metodo mudeOsValores contem o seguinte codigo

public void mudeOsValores(String s, int i) {
  s = outracoisa;
  i = 2;
}

Ricardo Munhoz Santiago
--- [EMAIL PROTECTED] wrote:
 Sérgio,
 
 Eu gostaria de fazer uma pequena correção no seu
 email.
 
 Java não possui passagem por referência. Somente por
 valor. Existe uma forma
 de simular passagem de parâmetros por referência,
 utilizando os objetos ou
 tipos primitivos armazenados em um array, por
 exemplo. Mas não existe
 passagem por referência.
 
 Antes que o alguém dê pulinhos de alegria, eu
 pergunto: e qual é o problema?
 Alguém por favor, apresente um artigo demonstrativo,
 baseado em testes de
 performance ou de algum requisito que mostre qual é
 o grandisíssimo problema
 de Java utilizar passagem por valor, e não por
 referência? Mesmo que haja,
 isso significa que Java é ruim?
 
 Abraços,
 Denard
 
 -Original Message-
 From: Sergio Oliveira Jr.
 [mailto:[EMAIL PROTECTED]] 
 Sent: terça-feira, 2 de outubro de 2001 22:56
 To: [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED];
 [EMAIL PROTECTED]
 Subject: [java-list] Re: Artigo Java x C#
 
 Mauro,
 
 Não era a minha intensão te tirar do sério. Não vejo
 problema algum em me 
 engajar num papo com você face-to-face. Só estou
 conversando com você via 
 email por ser mais conveniente, afinal a tecnologia
 está aí para facilitar a
 
 nossa vida, certo?
 
 Vou continuar falando racionalmente, apesar de não
 ver nenhum problema em te
 
 encontrar para um papo mais descontraído.
 
 Alguns absurdos que vc escreveu:
 
 - Java não possui todos os tipos derivados de
 ancestral comum:
 
 Possui sim... Além de possuir tipos primitivos mais
 leves, que por sua vez 
 possuem suas classes equivalentes (Wrappers). Todas
 são derivadas da class 
 Object.
 
 - Java não possui Structs:
 
 Realmente não possui a palavra Structs, mas é
 ridículo simular um C Struct 
 com uma class ou inner class.
 
 - Java não pode passar parametros por referencia:
 
 Todos os objetos Java são passados por referencia.
 Qualquer principiante em 
 Java precisa saber disso.
 
 - Java não possui Propriedades:
 
 Já ouviu falar em JavaBeans ??? Tb existe uma classe
 Properties que faz isso
 
 facilmente.
 
 - Java categoricamente não possui eventos nem
 delegate:
 
 Toda a GUI do Java é orientada a eventos e a
 listeners.
 Java não possui ponteiros para funções, mas possui
 interfaces que podem 
 facilmente e de uma forma mais elegante e poderosa
 realizar callbacks.
 
 - Java não possui Atributos:
 
 Não sei o que vc quiz dizer com isso, mas Java
 possui uma API de Reflection 
 poderosíssima.
 
 - Java não possui Ponteiros:
 
 Ainda bem! Referencia = Ponteiro com a excessão que
 não podemos fazer 
 operações aritiméticas com referencias.
 Todo mundo sabe que os ponteiros sempre foram a
 maior fonte de bugs, falhas 
 de segurança, vírus e dores de cabeça para os
 programadores C.
 
 - Java não possui Forech: loop para varrer arrays e
 coleções
 
 Dê uma olhada na API Collections. Vc vai ficar
 impressionado com a 
 qualidade, eficiência e performance dessa API.
 
 - Java não possui Campos readonly.
 
 Lógico que possui. Basta utilizar final.
 
 - Java não possui Documentação integrada em XML.
 
 Javadoc serve exatamente para isso que vc sugere
 como vantagem do C#.
 
 - Java não possui Controle sobre estouro de faixa
 numérica
 
 Lógico que possui. Pelo amor de Deus...
 
 - Java não possui Diretivas de compilação
 condicional (#ifdef etc)
 
 Não precisa pois utilizando o final boolean DEBUG =
 false; o compilador 
 automaticamente otimiza o código compilado retirando
 esse código morto.
 
 - Java não possui Padronização por algum organismo
 internacional
 
 ??? Já ouviu falar em Enterprise JavaBeans, Servlet,
 JSP, etc. Diversas 
 empresas adotaram essas especificações,
 independentemente de imposições da 
 Sun. Apenas a Máquina Virtual da microsoft não era
 compatível com todas as 
 demais, daí a derrota da Microsoft na justiça.
 
 - Java não Chama APIs do Windows e DLLs
 
 Lógico que chama via JNI.
 
 Como voce percebe pelos meus comentários acima. Vc
 definitivamente não é a 
 pessoa certa para fazer essa comparação entre C# e
 Java. A não ser que vc 
 seja um homem de marketing e não da área de TI.
 
 --
 Sergio Oliveira Jr.
 Sun Certified Java Programmer
 Desenvolvedor e Consultor Java
 Empresa SmartJava
 --
 
 
 
 From: Mauro 

Re: [java-list] Dúvida JSP

2001-10-02 Por tôpico Ricardo Santiago


Se voce não quer algum attributo da request original
na segunda página use o metodo

request.removeAttribute(String attributeName)

--- [EMAIL PROTECTED] wrote:
 Pessoal, 
 
 Tudo bem, 
 
 Nas minhas páginas (jsp) eu uso o comando forward
 para redirecionar para 
 outra página (jsp), só que o objeto request da
 página atual vai para a 
 página redirecioanda, ou seja, nesta nova página eu
 verifico o conteudo do 
 campo fazendo um  request.getParameter(txtNome),
 só que neste momento 
 existem 2 campos com o nome txtNome, ou seja, um
 array. Como consigo pegar 
 o campo certo ou o que devo fazer para evitar esta
 duplicidade de campos ? 
 
 Eu identifiquei o problema usando o método
 request.getParameterValues(name) 
 no seguinte código abaixo no início de cada página. 
 
   Enumeration e = request.getParameterNames();
   while (e.hasMoreElements()) {
   String name = (String)e.nextElement();
   String value = request.getParameter(name);
System.out.println(name +  =  +
 value);
   String x[] =request.getParameterValues(name);
   System.out.println(  x:+x.length);
   for(int i=0;ix.length;i++){
   System.out.println(x[+i+]:+x[i]);
   }
   } 
 
 Obrigado pela ajuda, 
 
 []s
 Marcus Augusto 
 
 -- LISTA SOUJAVA
  
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP 
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED] 

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] capturar

2001-10-02 Por tôpico Ricardo Santiago


Meu, que tal ser um pouquinho mais especifico.
Que tipo de aplicacao voce esta escrevendo?
Web (servlet, jsp)?, GUI (Swing ou AWT)?
Console?

...

Ricardo Munhoz Santiago

--- Fernando C. Felix [EMAIL PROTECTED]
wrote:
 como eu faço para capturar um valor digitado pelo
 usuario???
 
 
 Fernando
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] Leitura de dados pela COM1

2001-10-02 Por tôpico Ricardo Santiago


Use a Java COMM API

http://java.sun.com/products/javacomm/

--- [EMAIL PROTECTED] wrote:
 Prezados companheiros,
 
 Eu tenho um celular ligado à porta COM com um cabo
 ao meu micro. Sou iniciante em JAVA e preciso
 desenvolver uma rotina com urgência, que capture o
 número de telefone que está sendo recebido pelo
 bina (olho mágico) do celular conectado ao micro.
 A rotina somente precisará, pegar essa string que
 contém o número do telefone que está aparecendo no
 aparelho e gravar num arquivo TXT. Alguém poderia me
 ajudar nesse caso ? 
 
 Agradeço a atenção dos amigos,
 
 []'s,
 
 Anderson Brazão.
 
 

--
 
 Abra grátis sua conta no StarMedia Email.
 Inscreva-se agora mesmo! 
 http://www.br.starmedia.com
 

--
 
 
 
 -- LISTA SOUJAVA
  
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP 
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED] 

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] Controlando o tamanho de um arquivo !!

2001-10-02 Por tôpico Ricardo Santiago


Você pode usar o Log4J que é um framework para log
muito legal e opensource suportado pelo grupo apache
http://jakarta.apache.org/log4j/docs/index.html

Se nao quiser olhar o Log4J de uma olhada no codigo,
comecando pela classe org.apache.log4j.FileAppender

Ricardo Munhoz Santiago

--- Alan Alexandre da Silva [EMAIL PROTECTED]
wrote:
 Pessoal, minha aplicação gera arquivos de log. O
 problema é que os arquivos podem ficar grandes
 demais, sendo necessário transformá-los em backup.
 Alguém já trabalhou com isso ?!
 
 Alan
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] VEJAM ESSA - C#

2001-10-02 Por tôpico Ricardo Santiago


Giovani, sinto dizer, mas o autor está completamente
certo sobre dois os pontos que você levantou.
Java não suporta enum. Se isso é bom ou ruim para a
linguagem é outra discussão. A interface Enumeration à
qual você se referiu não tem absolutamente nada a ver
com o tipo enum originalmente definido na linguagem C.
Claro que existe formas de construir uma estrutura
parecida, e até mais elegante em java. Um bom artigo
sobre isso é:
http://www.javaworld.com/javaworld/javatips/jw-javatip27.html


Sobre propriedades, de novo, java não tem suporte
EXPLICITO na linguagem a isso.
A specificação JavaBeans permite o uso de  BeanInfo
para descrever as propriedades do seu JavaBean.
Voce também pode usar métodos no padrão getXXX e
setXXX que serão interpretados por ferramentas que
aceitam a especificação como propriedades.
Mas não existe o conceito explicito de propriedades em
java. 

Contudo o cara realmente erra feito em muitos pontos
como ao dizer que em Java nem todas as Classes derivam
de um ancestral comum. Implicitamente toda a estrutura
de herança em java começa com java.lang.Object

Enfim, esse foi um péssimo artigo!

Ricardo Munhoz Santiago

--- Giovani Salvador
[EMAIL PROTECTED] wrote:
 Pessoal, o link abaixo contém uma comparação
 ridícula entre C# e Java. O autor do artigo, além de
 demostrar falta total de conhecimento em java em
 alguns ítens, puxa completamente a corda para o lado
 eternamente proprietário Microsoft. O comparativo é
 bom para ver como esse sujeito tem total
 desconhecimento sobre java. Alguns exemplos: Fala
 que java não possui Enum (o que é o objeto
 enumeration então???) e  não possui propriedades. É
 de doer, bom para dar umas risadas.
 

http://www.microsoft.com/brasil/msdn/colunas/falandoc/col_falandoc_2.asp
 
 **
 Giovani Salvador
 http://pagina.de/siglas (Siglas de informática)
 PROCERGS - Cia. de Processamento de Dados do 
 Estado do Rio Grande do Sul
 Setor TSI - Tecnologia para Sistemas de Informação
 ICQ #44904309
 **
     
 
 -- LISTA SOUJAVA
 
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED]

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] Daemon Threads.

2001-10-02 Por tôpico Ricardo Santiago


Dê uma olhada na documentação

http://java.sun.com/j2se/1.3/docs/api/java/lang/Thread.html#setDaemon(boolean)

A máquina virtual termina quando todas as threads
ativas são do tipo daemon.

Daemon threads servem para suportar user threads.
Se não há mais user threads, a maquina virtual termina

--- Paulo R. Panhoto
[EMAIL PROTECTED] wrote:
 Pessoal,
 
 uma dúvida: O que caracteriza uma daemon thread,
 e portanto, a diferencia
 de uma ordinária?
 
 Grato
 
 
 -- LISTA SOUJAVA
 
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED]

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] printStackStrace para string

2001-10-02 Por tôpico Ricardo Santiago


import java.io.*;

...

Exception e = ...;
StringWriter writer = new StringWriter();
e.printStackTrace(new PrintWriter(writer));
String stackTrace = writer.toString();

...

Ricardo Munhoz Santiago

--- Luiz Fernando [EMAIL PROTECTED]
wrote:
 Alguem ai sabe como fazer para capturar o
 printStackTrace
 () e guardar o resultado em uma String ?
 
 Obrigado,
 LF
 
 
 
 
 

__
 AcessoBOL, só R$ 9,90! O menor preço do mercado!
 Assine já! http://www.bol.com.br/acessobol
 
 
 
 -- LISTA SOUJAVA
 
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED]

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] Executar programa externo

2001-10-01 Por tôpico Ricardo Santiago


Isso depende do grau de interação que você deseja
entre os dois programas.

Se você só quiser chamar um programa externo dê uma
olhada nas classes

Runtime e Process do pacote java.lang

Se você quiser uma comunicação mais intensa, pode
pensar em CORBA ou uma interface de comunicação via
sockets (TCP/IP)

Ricardo Munhoz Santiago

--- Henrique Rodrigo T. da Silva
[EMAIL PROTECTED] wrote:
 Ola,
 Gostaria de saber se existe alguma forma de executar
 um programa que nao
 tenha sido feito em Java. Se existe, como eu poderia
 fazer isso.
 
 Obrigado pela atencao
 
 []s.
 Henrique Rodrigo
 
 
 -- LISTA SOUJAVA
  
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP 
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED] 

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] Comunicação entre servlets

2001-09-27 Por tôpico Ricardo Santiago


Uma outra opção, bem mais simples é simplesmente
encaminhar ou incluir o resultado do processamento de
outros servlets no inicial. Exemplo:

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MainServlet extends HttpServlet {

  private Map mapping;

  private void init(ServletConfig config) throws
ServletException {
mapping = new Hashtable(); // thread safe Map
implementation
mapping.put(doIt, do/it/servlet);
mapping.put(doThat, do/that/ThatServlet);
  }

  public void doPost(HttpServletRequest req,
HttpServletResponse resp) throws IOException,
ServletException {
String action = req.getParameter(action);
String servletUrl = (String) mapping.get(action);
RequestDispatcher dispatcher =
req.getDispatcher(servletUrl);
dispatcher.forward(req, resp);
// dispatcher.include(req, resp); Veja qual se
adequa melhor ao seu caso
  }

}

Notas o codigo nao foi testado e pode nao compilar ou
funcionar logo de cara, mas eh um exemplo.
Pesquise as classes na documentacao da api de servlets
http://java.sun.com/products/servlet/2.2/javadoc/index.html

Ricardo Munhoz Santiago

--- Claudio Miranda [EMAIL PROTECTED] wrote:
 Helio, de maneira simples, você pode usar o
 HttpUnit
 [http://httpunit.sourceforge.net]
 
 exemplo de código:
 
 WebRequest request;
 WebResponse response;
 WebConversation conversation = new
 WebConversation();
 request = new

GetMethodWebRequest(http://eap.netbeans.com/eap/index.html;
 );
 response = conversation.getResponse( request );
 System.out.println( response.getText() );
 
 WebForm loginForm = response.getForms()[0];
 request = loginForm.getRequest();
 request.setParameter( name, master );
 response = conversation.getResponse( request );
 System.out.println( response );
 
 
 o HttpUnit interage com protocolo http, simulando um
 cliente.
 
 Mas verifique se você _precisa_ conversar
 somente em http, pense
 em
 isolar os metodos/classes que se queira em um
 servlet. Pois assim, você
 diminue o acoplamento no nivel de apresentação de
 seu sistema.
   
 
 Claudio Miranda
 
 -- Helio Andrade - wrote:
  Olá, pessoal !
  
   Gostaria de obter a ajuda de vcs para implementar
 a solução descrita abaixo:
  
Tenho um formulário HTML que chama um
 servlet que por sua
vez chama outros servlets dependendo da
 opção selecionada
do formulário.
  
Alguém tem idéia como fazer isto ?
  
Qualquer ajuda será bem vinda.
  
[]´s
Hélio Andrade
 

_
 Do You Yahoo!?
 Get your free @yahoo.com address at
 http://mail.yahoo.com
 
 
 -- LISTA SOUJAVA
  
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP 
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED] 

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] Reloading de Classes

2001-09-27 Por tôpico Ricardo Santiago


Oi Paulo, defina seu proprio ClassLoader extendendo a
classe java.lang.ClassLoader
C:\jdk1.3.1\docs\api\java\lang\ClassLoader.html


--- Paulo Simao [EMAIL PROTECTED] wrote:
 E ai Pessoal!
 To com o seguinte problema:
 
 Desejo recarregar a classe do arquivo .class toda
 vez que for necessária uma
 nova instância desta (Entendam, preciso atualizar as
 classes dinamicamente
 sem precisar restartar a máquina virtual Java).
 Valeu,
 P.O.
 
 
 -- LISTA SOUJAVA
  
 http://www.soujava.org.br  -  Sociedade de Usuários
 Java da Sucesu-SP 
 dúvidas mais comuns:
 http://www.soujava.org.br/faq.htm
 regras da lista:
 http://www.soujava.org.br/regras.htm
 para sair da lista: envie email para
 [EMAIL PROTECTED] 

-
 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




RE: [SouJava-J] JAR files and Configuration

2000-03-24 Por tôpico Ricardo Santiago

Ok, decobri como fazer ...

Se voce quer carregar um arquivo de resource qualquer, mesmo que ele esteja
dentro do JAR onde sua classe estah empacotada, basta usar a seguinte
tecnica (que funciona em aplicacoes, applets e java 2, bem como jdk 1.1.x).

basta usar o metodo getResource da classe CLASS.
Veja, nao adianta usar o ClassLoader.getSystemResource (String), nao vai
funcionar num applet.

por exemplo  getClass ().getResource ("conf.properties");
ou
getClass ().getResource
("/com/eversystems/application/someapp/con.properties");

A syntax eh importante, se voce nao comecar o caminho com /, o metodo ira
procurar a partir do package em que a classe que invocou o metodo
getResource estah.
Para especificar o path completo, comece com /

Espero que a informacao seja util a todos como foi para mim...

Um abraco



Ricardo Munhoz Santiago

SUN Ceritified Programmer for the JAVA 2 Platform
Eversystems (Research and Development)

-Original Message-
From: Ricardo Santiago [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, February 29, 2000 6:53 PM
To: [EMAIL PROTECTED]
Subject: [SouJava-J] JAR files and Configuration




Alguem conhece algum documento que descreve como ler um arquivo de
properties que esta dentro de um jar?

Imagine o seguinte, tenho uma classe X.class e um arquivo de propriedades
X.properties, os dois dentro de um arquivo jar X.jar

Como eu faco para que a classe X.class possa ler o arquivo X.properties?

Imagine que a X.class pode ser um Applet, ou qualquer coisa ... (implicacoes
de seguranca)

Faleu a todos

--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-


--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-




RE: [SouJava-J] RCs do JDK

2000-03-24 Por tôpico Ricardo Santiago

Dalton, RC significa Release Candidate

Nao existe RC1, 2, 3, 4 do JDK1.2.2, elas existiam para o JDK1.2 quando ele
nao tinha uma
production release. Isso significa que o software estava amadurecendo e nao
deveria ser usado em ambientes de producao.
A versao JDK1.2.1 java era uma release de producao.
A versao JDK1.2.2 tem alguns bug fixes, e eh uma release de producao tambem
A versao JDK1.3 esta em beta, talvez ela nao tenha tantas RCs como teve a
versao 1.2, isso se da porque da versao 1.1 para a 1.2 hoveram MUITAS
mudancas e adicoes, tanto que ate o nome da plataforma mudou de JAVA para
JAVA 2

um abraco

Ricardo Munhoz Santiago

SUN Ceritified Programmer for the JAVA 2 Platform
Eversystems (Research and Development)
www.eversystems.com.br

-Original Message-
From: Dailton Santana de Almeida [mailto:[EMAIL PROTECTED]]
Sent: Friday, March 24, 2000 9:46 AM
To: SouJava
Subject: [SouJava-J] RCs do JDK


Qual a diferença entre o JDK 1.2.2 RC1, RC2, RC3, RC4?

Obrigado.
Dailton.

--
Dailton Santana de Almeida
mailto:[EMAIL PROTECTED]

--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-


--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-




JAVA CHEGA DESTA PALHACADA (Adeus Jaka Paladium)----RE: [SouJava-J] ASP, Java, DHTML

2000-03-24 Por tôpico Ricardo Santiago



Cara, 
Se manda, nao ta dando mais pra te aturar ...

Pelo 
amor de Deus organizadores desta lista, tirem este cara daqui 
...

em 
apenas 3 dias ele ja provocou um tremendo tumulto na lista com mensagens sobre 
CRACKS, ASP,FLASH e DHTML,

TUDO 
MENOS JAVA.

Escuta 
aqui cara, some desta lista antes de sereliminado que fica melhor ok 
...
Existem n listas e news sobre as coisas que voce quer 
saber, assine um destes ...
Eu 
simplesmente nao aguento mais... Se continuar a existir este tipo de gente na 
lista, na boa eu acho que nao vai sobrar um profissional qualificado que de 
suporte a lista.

Aproveitando, pessoal, quando alguem disser que tem uma 
apostila para enviar pra quem quiser (mesmo que seja de JAVA), os interessandos 
por favor mandem os e-mails DIRETAMENTE PARA A PESSOA, e nao para a lista, isto 
melhora o nivel da lista, ninguem quer receber 100 e-mail num dia, dos quais 50 
sao "tambem quero a apostila", 20 sao sobre ASP e 10 sobre CRACKS, das outras 
20, 18 SAO perguntas que estao no tutorial da sun, e as outras 2 podem ser 
encontradas facilmente na documentacao JAVADOC que vem com o JDK 
...

Na 
boa, vamos fazer desta lista um lista decente, onde possamos pedir ajuda PARA 
PROBLEMAS QUE NAO CONSEGUIMOS RESOLVER (depois de tentarmos, lermos o tutorial, 
olharmos em sites de auxilio, como o javaman e outros ...). E acima de tudo, que 
sejam problemas sobre JAVA.

Pessoas que nao estejam dispostas a colaborar com a 
lista de forma produtiva devem ser eliminadas...

Gostaria que o pessoal da organizacao pensasse 
nisso.

Para 
os que estao mandando perguntas muito obvias: Como aprender java, como converter 
int to string, bla bla bla, ai vai uma lista de lugares onde voces podem ler 
artigos e procurar solucoes antes de manderem as perguntas pra 
lista:

www.gamelan.com
java.sun.com.br
developer.java.sun.com.br
www.javaworld.com
www.javareport.com
etc 
...

Claro 
que a lista eh para ajudar a esclarecer duvidas, mas vamos manter nossas duvidas 
num nivel aceitavel.
Quem 
tiver um problema estranho e conseguir solucionar, tambem pode compartilhar a 
ideia com a lista. 

Espero 
que as coisas mudem, ou esta lista esta destinada a um fracasso total... Ja faz 
tempo que as coisas deviam ter entrado nos eixos ...

  -Original Message-From: Jaka Paladium 
  [mailto:[EMAIL PROTECTED]]Sent: Friday, March 24, 2000 7:51 
  AMTo: [EMAIL PROTECTED]Subject: [SouJava-J] ASP, 
  Java, DHTML
  Onde posso conseguir material sobre Java, DHTML e 
  Principalmente ASP?
  
  
  Jaka 
Paladium


RE: JAVA CHEGA DESTA PALHACADA (Adeus Jaka Paladium)----RE: [SouJava-J] ASP, Java, DHTML

2000-03-24 Por tôpico Ricardo Santiago



OK 
pessoal, ninguem precisa da certificacao da sun pra participar (nao sei da onde 
voce tirou essa Nelson), contudo espera-se que a pessoa que vai colocar uma 
duvida na lista tenha PELO MENOS lido a documentacao e o tutorial antes de fazer 
perguntas OBVIAS. Veja bem NINGUEM nasceu SABENDO, mas colocar uma pergunta na 
lista nao eh a unica forma de aprender. 
Embora 
possa parecer comodo colocar uma pergunta na lista que ja esteja no tutorial da 
sun ou na documentacao de java, isso eh uma faca de dois gumes, pois os caras 
que estao aqui para responder perguntas vao acabar se enchendo, e quem vai 
responder as perguntas mais dificeis se todos os que respondiam se 
foram?

Desde 
que esta lista se iniciou os organizadores ja CANSARAM de falar, ANTES DE 
COLOCAR UMA PERGUNTA NA LISTA VEJA SE A RESPOSTA NAO ESTA NO TUTORIAL, OU NA 
DOCUMENTACAO.

Meus 
amigos, isso eh obvio. Quem nao fizer isso esta com preguica de procurar. O 
material esta a disposicao e voce vai acabar conseguindo achar a resposta mais 
rapido do que esperando uma resposta via e-mail.

Eh soh 
bom senso! Quando digo vamos elevar o nivel da lista, eu quero dizer, vamos 
sumir com os e-mails idiotas que nao tem nada a ver com JAVA e com esta LISTA, e 
eliminar que as perguntas que tem respostas acessiveis a todos NO TUTORIAL e na 
DOCUMENTACAO, sejam perguntadas VEZ APOS VEZ.

Quem 
entrou agora na lista pode nao saber, mas a pergunta: como converter um int para 
string ja apareceu TROCENTAS vezes nesta lista. E o pior eh que este tipo de 
pergunta acaba recebendo TROCENTAS respostas, quando devia receber apenas uma: 
veja o tutorial na pagina X.


Devemos diminuir a quantidade de mensagens na lista MAS 
AUMENTAR o valor da mesma. 

Pensem 
nisso!

  -Original Message-From: [EMAIL PROTECTED] 
  [mailto:[EMAIL PROTECTED]]Sent: Friday, March 24, 2000 1:14 
  PMTo: [EMAIL PROTECTED]Subject: Re: JAVA CHEGA 
  DESTA PALHACADA (Adeus Jaka Paladium)RE: [SouJava-J] ASP, Java, 
  DHTML
  Acho justo a exclusão de pessoas que conturbem a 
  lista ou que gerem discussões de matérias off-topic.
  Agora, quanto a se estabelecer o 
  nível de perguntas...ah, ah, ah..só mesmo rindo. Ninguém nasceu sabendo, o que 
  é trivial para alguns, talvez não seja para muitos outros.
  Quando assinei a lista, não existia nenhuma 
  informação sobre o nível de discussão ou queeu precisaria ter 
  acertificação da Sun para participar.
  
- Original Message - 
From: 
Ricardo Santiago 
To: [EMAIL PROTECTED] 
Sent: Wednesday, March 01, 2000 11:24 
AM
Subject: JAVA CHEGA DESTA PALHACADA 
(Adeus Jaka Paladium)RE: [SouJava-J] ASP, Java, DHTML

Cara, Se manda, nao ta dando mais pra te aturar 
...

Pelo amor de Deus organizadores desta lista, tirem 
este cara daqui ...

em 
apenas 3 dias ele ja provocou um tremendo tumulto na lista com mensagens 
sobre CRACKS, ASP,FLASH e DHTML,

TUDO MENOS JAVA.

Escuta aqui cara, some desta lista antes de 
sereliminado que fica melhor ok ...
Existem n listas e news sobre as coisas que voce 
quer saber, assine um destes ...
Eu 
simplesmente nao aguento mais... Se continuar a existir este tipo de gente 
na lista, na boa eu acho que nao vai sobrar um profissional qualificado que 
de suporte a lista.

Aproveitando, pessoal, quando alguem disser que tem 
uma apostila para enviar pra quem quiser (mesmo que seja de JAVA), os 
interessandos por favor mandem os e-mails DIRETAMENTE PARA A PESSOA, e nao 
para a lista, isto melhora o nivel da lista, ninguem quer receber 100 e-mail 
num dia, dos quais 50 sao "tambem quero a apostila", 20 sao sobre ASP e 10 
sobre CRACKS, das outras 20, 18 SAO perguntas que estao no tutorial da sun, 
e as outras 2 podem ser encontradas facilmente na documentacao JAVADOC que 
vem com o JDK ...

Na 
boa, vamos fazer desta lista um lista decente, onde possamos pedir ajuda 
PARA PROBLEMAS QUE NAO CONSEGUIMOS RESOLVER (depois de tentarmos, lermos o 
tutorial, olharmos em sites de auxilio, como o javaman e outros ...). E 
acima de tudo, que sejam problemas sobre JAVA.

Pessoas que nao estejam dispostas a colaborar com a 
lista de forma produtiva devem ser eliminadas...

Gostaria que o pessoal da organizacao pensasse 
nisso.

Para os que estao mandando perguntas muito obvias: 
Como aprender java, como converter int to string, bla bla bla, ai vai uma 
lista de lugares onde voces podem ler artigos e procurar solucoes antes de 
manderem as perguntas pra lista:

www.gamelan.com
java.sun.com.br
developer.java.sun.com.br
www.javaworld.com
www.javareport.com
etc ...

Claro que a lista eh para ajudar a esclarecer 
duvidas, mas vamos manter nossas duvidas num nivel 
aceitavel.
Quem tiver um problema estranho e conseguir 
solucion

RE: [SouJava-J] ServLets

2000-03-24 Por tôpico Ricardo Santiago

Claro que sim:

http://java.sun.com/products/servlet
Aqui tem o TOMCAT, pra voce rodar os servlets, bem como a api e a
documentacao

http://www.servlets.com
Bastante exemplos e resources
Alem disso tem um link para useful urls que vao te levar a outros sites

um abraco.


Ricardo Munhoz Santiago

SUN Ceritified Programmer for the JAVA 2 Platform
Eversystems (Research and Development)
www.eversystems.com.br

-Original Message-
From: Alex Soares [mailto:[EMAIL PROTECTED]]
Sent: Friday, March 24, 2000 2:36 PM
To: [EMAIL PROTECTED]
Subject: [SouJava-J] ServLets


Ola pessoal , estou querendo fazer alguns servlets
para aprender e roda-los alguem pode me dizer onde
encontro o material necessario para isso.

Muito Obrigado.



__
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com

--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-


--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-




[SouJava-J] JAR files and Configuration

2000-03-23 Por tôpico Ricardo Santiago



Alguem conhece algum documento que descreve como ler um arquivo de
properties que esta dentro de um jar?

Imagine o seguinte, tenho uma classe X.class e um arquivo de propriedades
X.properties, os dois dentro de um arquivo jar X.jar

Como eu faco para que a classe X.class possa ler o arquivo X.properties?

Imagine que a X.class pode ser um Applet, ou qualquer coisa ... (implicacoes
de seguranca)

Faleu a todos

--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-




RE: [SouJava-J] Problemas com RMI

2000-03-22 Por tôpico Ricardo Santiago

take it easy man!

veja bem a diferenca entre
java -Djava.rmi.server.codebase="http://localhost:8080/mysrc/HelloImpl"

e

java -Djava.rmi.server.codebase=http://localhost:8080/mysrc/ HelloImpl

embora a barra seja obrigatoria no final do codebase (sei la se eu coloquei
isso no meu exemplo), voce NAO pode deixar o nome da classe como parte da
propriedade, que eh o que ocorre no caso 1.

Alem disso, eu disse pro cara usar o applet viewer para testar localmente,
isso significa que NAO eh necessario o uso de um webserver.

Veja bem, estamos transformando um problema simples em discussao, se a
propriedade codebase nao estiver setada, vai acontecer o que ja foi sitado
por nos dois, rmiregistry vai querer o stub do objeto remoto quando voce
fizer um bind nele, e nao achando vai dar erro.

Quando ao pdf, acho uma boa coisa voce disponibilizar em algum lugar que a
lista possa acessar (embora eu mesmo ja tenha), mas qualquer um que entrar
em http://java.sun.com/products/jdk/rmi/, vai encontrar um monte de
informacoes, inclusive a especificacao que fornece os detalhes da coisa.


-Original Message-
From: Luis Fernando [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, March 22, 2000 1:53 AM
To: [EMAIL PROTECTED]
Subject: RE: [SouJava-J] Problemas com RMI




Meu caro,

Agradeco pelos comentarios, mas o motivo de eu ter dado esse exemplo,
foi pelo fato de jah ter executado o problema assim e TER FUNCIONADO.
Falando em erro, sua opcao para fazer o acesso localmente eh totalmente
impossivel, pois se trata de uma Applet que NAO PODE SE COMUNICAR AO NAO SER
COM O SERVIDOR QUE A ORIGINOU.O uso do jswdk eh indispensavel nesse caso.
A sintaxe no comando que voce diz nao citar a classe a ser ivocada, cita
claramente o arquivo HelloImpl.class NAO?!?!
java -Djava.rmi.server.codebase="http://localhost:8080/mysrc/HelloImpl"-

Que por sinal foi tirada do tutorial de rmi da sun que segue abaixo:

"The following command shows how to start the HelloImpl server, specifying
this property:

java –Djava.rmi.server.codebase=http://myhost/~myusrname/codebase/
examples.hello.HelloImpl 
Note – The trailing / in the codebase URL must be specified.
A stub class is dynamically loaded into a client’s virtual machine only when
the class is not already available locally."

  Ao que me parece ao localizar a classe no servidor HelloImpl,
automaticamente procura pelo stub no mesmo diretorio, que tambem eh
encontrado(desde que esteja lah, of course).

  Tutorial esse que tenho em pdf e terei prazer em enviar a lista se for de
interesse de todos.

Later,

Luis Fernando.




Pessoal, estamos confundindo uma coisa basica...
a linha de comando:

java -Djava.rmi.server.codebase="http://localhost:8080/mysrc/HelloImpl

E que estah TOTALMENTE ERRADA!

O erro que o nosso amigo esta tendo eh no momento de executar o objeto
servidor, isto se da por que o rmiregistry nao consegue localizar o stub, e
isso ocorre por que a propriedade java.rmi.server.codebase esta totalmente
errada, alem disso, a sintaxe do comando nem sequer indica a classe a ser
invocada. Por isso, como ja disso no meu primeiro e-mail sobre o assunto,
ai
vai a resposta para ESTE problema (voce provavelmente vai ter outros depois
de resolver este)

java -Djava.rmi.server.codebase=file:///c:/mysrc HelloImpl

A propriedade esta setada para o seu diretorio c:\mysrc. Isso indica que os
arquivos de classes, inclusive os stubs devem estar neste diretorio.
O uso de file:/// eh feito visto que voce nao esta usando nenhum servidor
web. Isso significa que se voce rodar um aplicacao cliente nesta mesma
maquina, ela vai funcionar.

Nao, Nao vai. O acesso eh feito por uma Applet.Tem que ser remoto.

Se voce criar um jar com uma aplicacao cliente
que inclua o stub e rodar de outra maquina, ela vai funcionar. CONTUDO, se
voce tentar rodar uma aplicacao cliente em uma maquina que NAO CONTENHA O
STUB NO CLASSPATH, NAO VAI FUNCIONAR.
Isso acontece por que o download dinamico do stub necessita do protocolo
http, ou pelo menos uma parte dele, por isso voce deveria usar um servidor
web.

Caso voce consiga um servidor web (tem varios disponiveis por ai de graca),
voce devera mudar a propriedade java.rmi.server.codebase para algo tipo:
java.rmi.server.codebase=http://127.0.0.1:8080/mysrc.

Voce devera substituir o endereco, a porta e o diretorio pelos que
estiverem
sendo usados por voce.

Abraco, boa sorte, e se tiver mais duvidas, mande outro e-mail bem
detalhado!



__
Get Your Private, Free Email at http://www.hotmail.com

--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-


--- LISTA SOUJAVA ---

RE: [SouJava-J] BestFriends

2000-03-22 Por tôpico Ricardo Santiago
Title: Bestlife



C`mom 
man, what does it have to do with JAVA...


  -Original Message-From: [EMAIL PROTECTED] 
  [mailto:[EMAIL PROTECTED]]Sent: Wednesday, March 22, 2000 11:17 
  AMTo: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]; 
  [EMAIL PROTECTED]; [EMAIL PROTECTED]; 
  [EMAIL PROTECTED]Subject: [SouJava-J] 
  BestFriendsVeja só o que eu descobri na INTERNET:
Um site aqui no Brasil que dá prêmios!

É simples e TOTALMENTE grátis! Você ganha pontos
de diversas maneiras e troca os pontos por prêmios em leilões e sorteios. E ainda pode ganhar prêmios instantâneos no BestFlash.
Se você ainda indicar mais amigos a gente ganha ainda mais.
Agora tem uma nova promoção, até o dia 17 de Abril de 2000, quem indicar mais amigos leva uma Honda Biz OKm.
Se inscreva já e confirme a minha indicação.
Vamos ganhar juntos.

O endereco é: http://www.bestlife.com.br 	

Bons clicks pra você.

sandronp
[EMAIL PROTECTED]

--- LISTA SOUJAVA --- 
  http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP [dúvidas 
  mais comuns: http://www.soujava.org.br/faq.htm] [para sair da lista: 
  http://www.soujava.org.br/forum/cadastrados.htm] 
  - 



RE: [SouJava-J] Problemas com RMI

2000-03-21 Por tôpico Ricardo Santiago

Pessoal, estamos confundindo uma coisa basica...
a linha de comando:

java -Djava.rmi.server.codebase="http://localhost:8080/mysrc/HelloImpl

E que estah TOTALMENTE ERRADA!

O erro que o nosso amigo esta tendo eh no momento de executar o objeto
servidor, isto se da por que o rmiregistry nao consegue localizar o stub, e
isso ocorre por que a propriedade java.rmi.server.codebase esta totalmente
errada, alem disso, a sintaxe do comando nem sequer indica a classe a ser
invocada. Por isso, como ja disso no meu primeiro e-mail sobre o assunto, ai
vai a resposta para ESTE problema (voce provavelmente vai ter outros depois
de resolver este)

java -Djava.rmi.server.codebase=file:///c:/mysrc HelloImpl

A propriedade esta setada para o seu diretorio c:\mysrc. Isso indica que os
arquivos de classes, inclusive os stubs devem estar neste diretorio.
O uso de file:/// eh feito visto que voce nao esta usando nenhum servidor
web. Isso significa que se voce rodar um aplicacao cliente nesta mesma
maquina, ela vai funcionar. Se voce criar um jar com uma aplicacao cliente
que inclua o stub e rodar de outra maquina, ela vai funcionar. CONTUDO, se
voce tentar rodar uma aplicacao cliente em uma maquina que NAO CONTENHA O
STUB NO CLASSPATH, NAO VAI FUNCIONAR.
Isso acontece por que o download dinamico do stub necessita do protocolo
http, ou pelo menos uma parte dele, por isso voce deveria usar um servidor
web.

Caso voce consiga um servidor web (tem varios disponiveis por ai de graca),
voce devera mudar a propriedade java.rmi.server.codebase para algo tipo:
java.rmi.server.codebase=http://127.0.0.1:8080/mysrc.

Voce devera substituir o endereco, a porta e o diretorio pelos que estiverem
sendo usados por voce.

Abraco, boa sorte, e se tiver mais duvidas, mande outro e-mail bem
detalhado!


-Original Message-
From: Luis Fernando [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, March 21, 2000 4:52 PM
To: [EMAIL PROTECTED]
Subject: Re: [SouJava-J] Problemas com RMI




From: "emilio lemos" [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: [SouJava-J] Problemas com RMI
Date: Tue, 21 Mar 2000 12:10:03 GMT

Oi Luis

Muito Obrigado por me ajudar.

Todos os programas estao dentro do diretorio C:\MYSRC

Entao realizo os segintes passos:
cd\mysrc
start rmiregistry
java -Djava.rmi.server.codebase=file:c:/mysrc/HelloImpl
Neste caso aparece uma mensagem de erro indicando sintaxe incorreta

Ai eu mudo para o comando abaixo(Observe o -D afastado)
java -D java.rmi.server.codebase=file:C:/mysrc/HelloImpl
Aparece o erro

Exception in thread "main" java.lang.NoClassDefFoundError:
java/rmi/server/codebase=file:

Observe que eu nao tenho um servidor Web local como o Personal Web Server
ou o Website. Nao sei se o problema esta ai.

Oi emilio,

O problema eh justamente esse. Uma applet soh pode se comunicar com o
servidor do qual ela foi originada.Eh uma norma de seguranca nos browsers.
No RMI,o proprio nome jah diz, remote method invocation,onde
se acessa um metodo de outra aplicacao remotamente(cliente-servidor).
  Para resolver baixe o jswdk na sun, depois coloque o diretorio mysrc
no servidor e execute o comando:

java -Djava.rmi.server.codebase="http://localhost:8080/mysrc/HelloImpl

  Isso deve resolver. Nao esqueca que o arquivo de html da sua applet tambem
tem que estar no servidor, pois se o browser identificar uma tentativa de
comunicacao entre a applet e outra aplicacao localmente,
uma SecurityException eh gerada.

Um abraco,

Luis Fernando.

__
Get Your Private, Free Email at http://www.hotmail.com

--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-


--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-




RE: [SouJava-J] Problemas com RMI

2000-03-20 Por tôpico Ricardo Santiago

OK, veja bem, a propriedade java.rmi.server.codebase deve ser preenchida com
um endereco de rede, e nao com o nome da classe que voce quer executar.

A linha de comando que voce enviou:
 O comando java -D java.rmi.server.codebase=HelloImpl da o seguinte erro:

Esta errada. A propriedade codebase deve conter o endereco de onde os
clientes deste objeto servidor poderao fazer download das classes
necessarias (como stubs, objetos de excecao, e assim por diante...) Por
isso, uma forma generica de executar o commando seria:

java -Djava.rmi.server.codebase=[endereco da sua maquina + caminho ate o
classpath] HelloImpl

*Exemplo de [endereco da sua maquina + caminho ate o classpath]

http://minhamaquina:minhaporta/minhasclasses/

No caso da sua aplicacao, o cliente nao conseguira fazer download dos stubs
se voce nao usar um servidor web, ou pelo menos um pseudo webserver que
implemente as requisicoes necessarias para fazer download dinamico das
classes.

Ainda assim, voce pode ter problemas pra executar um applet dependendo do
browser. Por exemplo, o IE nao suporta RMI. Se voce quiser testar o applet,
use o appletviewer que acompanha o JDK.

Espero que estas dicas ajudem um pouco.



-Original Message-
From: emilio lemos [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 20, 2000 5:17 PM
To: [EMAIL PROTECTED]
Subject: [SouJava-J] Problemas com RMI


Prezados Amigos

Estou enfrentando alguns problemas para fazer funcionar
um exemplo envolvendo RMI. De acordo com o exemplo, o resultado sera a
apresentacao do texto "Hello World" num browser que contem um applet.

Aqui estao alguns detalhes de minha configuracao:

Uso o Windows 95

JDK1.2

Diretorio onde foram gravados os fontes : C:\MYSRC

Nao tenho nenhum servidor Web local instalado.

A compilacao dos codigos fontes funciona sem problemas
javac Hello.java HelloImpl.java HelloApplet.java

A geracao dos "skeletons" "stubs" funciona ok atraves do comando
rmic HelloImpl

O comando start rmiregistry funciona ok

O comando java -D java.rmi.server.codebase=HelloImpl da o seguinte erro:
Exception in thread "main" java.lang.NoClassDefFoundError:
java/rmi/server/codebase=HelloImpl

* Deste ponto eu nao passei

O exemplo completo pode ser encontrado em

http://java.sun.com/products/jdk/1.1/docs/guide/rmi/getstart.doc.html


Agradeco qualquer colaboracao


// Hello.java
import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Hello extends Remote {
String sayHello() throws RemoteException;
}





// HelloImpl.java

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;

public class HelloImpl extends UnicastRemoteObject
implements Hello {

public HelloImpl() throws RemoteException {
super();
}

public String sayHello() {
return  "Hello World!";
}

public static void main(String args[]) {

// Create and install a security manager
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
HelloImpl obj = new HelloImpl();
// Bind this object instance to the name "HelloServer"

// Fiz uma mudanca nesta linha. A linha original e
// Naming.rebind("//myhost/HelloServer",obj);

Naming.rebind("//127.0.0.1/HelloServer", obj);
System.out.println("HelloServer bound in registry");
} catch (Exception e) {
System.out.println("HelloImpl err: " + e.getMessage());
e.printStackTrace();
}
}
}





// HelloApplet.java

import java.applet.Applet;
import java.awt.Graphics;
import java.rmi.Naming;
import java.rmi.RemoteException;

public class HelloApplet extends Applet {

String message = "blank";

// "obj" is the identifier that we'll use to refer
// to the remote object that implements the "Hello"
// interface
Hello obj = null;

public void init() {
try {
obj = (Hello)Naming.lookup("//" +
 getCodeBase().getHost() + "/HelloServer");
message = obj.sayHello();
} catch (Exception e) {
System.out.println("HelloApplet exception: " +
e.getMessage());
e.printStackTrace();
}
}

public void paint(Graphics g) {
g.drawString(message, 25, 50);
}
}


// Hello.html

HTML
titleHello World/title
center h1Hello World/h1 /center

The message from the HelloServer is:
p
applet code="HelloApplet"
width=500 height=120
/applet
/HTML


__
Get Your Private, Free Email at http://www.hotmail.com

--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: 

[SouJava-J] J2EE e DukesPetStore

2000-01-21 Por tôpico Ricardo Santiago





Ol pessoal.

J fiz vrios testes com a 
implementao de Referncia da Sun para J2EE.
Contudo, estou com um pequeno problema ao tentar executar o 
exemplo DukesPetStore.

Aps considerar todos os passos de 
configurao indicados no arquivo readne.txt que acompanha o 
exemplo, iniciar o J2EE, iniciar a DeployTool, eu tento abrir o arquivo 
estore.ear, que  a aplicao em si. 
Contudo recebo a mensagem estore.ear is corrupted or 
cannot be read. Pensei o obvio, que o arquivo estava ferrado, 
mas creio que no seja isso, visto que eu fiz outro download e o problema 
persistiu. Da eu tentei examinar o arquivo na mo, 
usando a ferramenta Jar, e o arquivo est legal.

Algum j passou por isso, ou tem alguma 
sugesto?

Caso ningum tenha uma idia, eu vou tentar 
montar a aplicao na mo, mas o problema  que isso 
vai levar um tempo que eu no posso perder.


Ricardo Munhoz Santiago (CPM Sistemas)Sun 
Certified Programmer for the JAVA 2 Platform

Come and get some 
!!!


Re: [SouJava-J] POO

2000-01-13 Por tôpico Ricardo Santiago


Entao a heranca que vamos ter pode ser :
Pessoa - Pessoa Fisica - Paciente
 - Medico
Pessoa -Pessoa Juridica- Convenio

Tenho apenas uma consideração neste respeito... Geralmente não é
recomendável associar por herança um papel (role) que possa mudar. Vou
exemplificar.

Eu, Ricardo Munhoz Santiago sou uma pessoa física, que me formei médico e
venho trabalhar neste hospital. Entro então como Medico. No meio do ano,
fico doente e resolvo me internar neste mesmo hospital. Para ter uma ficha
clinica preciso ser cadastrado como paciente. Já houve duplicação dos dados
da classe Pessoa Fisica.

Quando vamos falar de um papel desempenhado, a melhor coisa é usar de
associação, não herança.
No caso, a classe Medico deve estar associada a uma pessoa fisica, e da
mesma forma a classe Paciente.

Este é o típico caso onde o teste "é uma" pode enganar!

Podemos dizer que um paciente "é uma" pessoa física, mas no fundo, paciente
é apenas o estado em que a pessoa se encontra durante uma visita ao
hospital, é só o papel que ela desempenha.!


just my 2 cents!


Ricardo Munhoz Santiago (CPM Sistemas)
Sun Certified Programmer for the JAVA 2 Platform


Come and get some !!!



--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-



Re: [SouJava-J] POO

2000-01-13 Por tôpico Ricardo Santiago

Eu, Ricardo Munhoz Santiago sou uma pessoa física, que me formei médico e
venho trabalhar neste hospital. Entro então como Medico. No meio do ano,
fico doente e resolvo me internar neste mesmo hospital. Para ter uma ficha
clinica preciso ser cadastrado como paciente. Já houve duplicação dos
dados
da classe Pessoa Fisica.

Desculpa, mais nao entendi porque teria duplicacao ja que se pesquiso no
cadastro pelas pessoas fisicas vou te achar (a generalizacao e' justamente
pra evitar a duplicacao de informacao). A tua propria frase e incompativel.
Na hora de criar uma nova instancia do Paciente que implica criar uma nova
instancia da Pessoa Fisica descobriria a duplicacao.

Ok. Você pode até descobrir a duplicação, mas e aí? O que você vai fazer?
Vai deixar de cadastrá-lo como Paciente, ou vai apagar o cadastro dele como
Médico? Você não pode ter os dois ao mesmo tempo, visto que eles são
paralelos na árvore de herança ...
A grande verdade é que este problema de design, na hora da programação
geralmente é resolvido com duplicação. O que é péssimo, mas é melhor do que
perder um cadastro para fazer outro! Por isso eu citei duplicação ...


Que tal se definimos duas interfaces : IPaciente e IMedico (alguem me
indique a sintaxe correta, por favor) e aplicamos elas na classe pessoa
fisica? Sera melhor que a associacao? Porque?
O sera melhor deixar como associacao mesmo?



O modelo pede uma associação.
O que você está sugerindo é grudar mais ainda, colocando Paciente, Medico e
Pessoa Física Tudo junto.
Se nós aplicarmos as interfaces IPaciente e IMedico à classe Pessoa, estamos
dizendo que toda pessoa física tem responsabilidades de Médico e de
Paciente, o que não é verdade!

A associação é que permite o reuso!
Imagine que amanhã seu sistema cresça, e você queira incluir a parte
administrativa, incluindo outros tipos de funcionarios (Enfermeiros,
Tecnicos, Administradores).
Se você usar o primeiro modelo, vai ter uma subclasse de Pessoa Fisica para
cada novo tipo. Mas o problema da multipla-exclusão ou duplicação continua.
Se você usar o segundo modelo, irá criar + 3 interfaces e aplicá-las à
classe paciente.
Se usar ASSOCIAÇÃO irá criar + 3 classes independentes e fazer uma
associação com a classe pessoa Física.


Ricardo Munhoz Santiago (CPM Sistemas)
Sun Certified Programmer for the JAVA 2 Platform


Come and get some !!!


--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-



Re: [SouJava-J] POO

2000-01-13 Por tôpico Ricardo Santiago

Quando falo em associacao, estou falando que a classe Medico nao conhece a
classe PessoaFisica, nem a classe PessoaFisica conhece a classe Medico.
Nenhuma delas tem um atributo com o tipo da outra.
Existe entao, uma classe que ainda nao temos nome pra ela (poderia ser
Roles) que representa a associacao e que ela sim, conhece as outras duas.

Não necessariamente. Neste caso, na hora de implementar, a Classe Medico
pode ter uma referencia da classe PessoaFisica e o mesmo no que diz respeito
à classe Paciente. Contudo, podem haver atributos de seu interesse que
pertençam ao relacionamento, daí vale a pena criar mais uma classe.

Mais...
Se eu tenho um Medico ( e so um medico) ou tenho um Paciente (e so um
paciente), e nao tenho acesso ao Rol, e quero saber quem é a pessoa que a
representa pois nao pode existir paciente ou medico sem pessoa, nao
consigo.


Não entendi o que você quis dizer 
Tente clarear um pouco mais!



Come and get some !!!


--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-



[SouJava-J] So, What The Hell is OO

2000-01-11 Por tôpico Ricardo Santiago




Bem, vi uma discusso sobre JAVA e OO, e 
resolvi perguntar:
Ser que todos os que 
esto lendo isso, esto entendendo do que esto 
falando?
Sim, porque todos disseram que muita gente no sabe 
nada de OO e programa em JAVA como se fosse Clipper, mas ningum disse 
efetivamente o que estes pobres infelizes devem fazer pra sair desta 
lama!
Nem tao pouco vou dizer por que se no o e-mail vaio 
ficar GIGANTE. Mas gostaria de fazer uma simples 
indicao:

Leiam: 
 Applying UML and Patterns (Este livro 
 MUITO bom)

E lembrem-se OO e sobre DISTRIBUIO DE 
RESPONSABILIDADES, por isso o GRASP (General RESPONSIBILITY ASSIGNMENT Software 
Pattern) que se encontra no citado livro, j  um bom 
comeo.


Ricardo Munhoz Santiago (CPM Sistemas)Sun 
Certified Programmer for the JAVA 2 Platform

Come and get some 
!!!


Re: [SouJava-J] JAAS

2000-01-07 Por tôpico Ricardo Santiago



Sr*s


Olá Miriam

Gostaria de saber se alguem jah utilizou o JAAS e conseguiu
executar o exemplo que eh fornecido.

Segui todas as instrucoes mas nao estou conseguindo executar.
Recebo sempre o seguinte erro: ...


Este erro parece uma incompatibilidade entre versões do JDK, você percebeu
que ele ocorre dentro do metodo defineClass da classe java.lang.ClassLoader?

A especificação do JAAS exige que ele seja executado com o JDK1.3, que ainda
está em beta ...
Talvez você esteja usando o JDK1.2.2, que é uma release de produção, neste
caso não vai funcionar.

Se o problema não for esse, envie mais dados sobre o seu ambiente:

*Sistema operacional,
*versão JDK


Obrigada a todos

Miriam


Ricardo Munhoz Santiago (CPM Sistemas)
Sun Certified Programmer for the JAVA 2 Platform


Come and get some !!!


--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-



[SouJava-J] RMI-IIOP and CORBA Services

2000-01-06 Por tôpico Ricardo Santiago




Clients RMI-IIOP poderao acessar servidores 
CORBA.
O servico de nomes CosNaming esta acessivel via 
JNDI.
Contudo, outros servicos CORBA, como 
TradeService, terao de ser acessados da forma convencional, via java IDL, ou ha 
algum outro tipo de interface?


[SouJava-J] COMO SAIR DA LISTA SE ESQUECEU O USERNAME OU PASSWORD

2000-01-06 Por tôpico Ricardo Santiago




Ok, pessoal, no vamos perder tempo sendo 
to severos com quem quer sair da lista e no sabe 
como.
Tantas respostas sem 
objetivo como as que tenho visto s causam desgaste e enchem o e-mail com 
LIXO.
Na verdade, se voc 
esquecer ser user name ou password, vai ficar difcil mesmo sair da 
lista.


COMO SAIR DA LISTA SE ESQUECEU O USERNAME OU PASSWORD:
Caso isso acontea, entre no site www.soujava.org.br, na primeira 
pgina, clique em INFO.

No menu lateral selecione ENTRE EM CONTATO.
Aparecer um form, escolha a rea 
Administrao do site, preencha o resto do form, e explique que 
quer sair da lista.

Simples, no ?


Ricardo Munhoz Santiago (CPM Sistemas)Sun 
Certified Programmer for the JAVA 2 Platform

Come and get some 
!!!


Re: [SouJava-J] Livro BD, RMI, ...

2000-01-06 Por tôpico Ricardo Santiago

Eu estou procurando um bom livro e/ou bons tutoriais, apostilas e etc, que
fale de Banco de Dados em Java, acesso RMI, Email em Java...
Porem estou meio perdido!!


Uma sugestão é o site da Sun sobre estas APIS.
Entre em www.java.sun.com/products e então, selecione na combo a API sobre a
qual deseja informação.

Estou recorrendo para a lista para receber sugestoes (Livros de
preferencia).


Sobre JDBC voce pode procurar um livro da editora O'reilly, que trata bem do
assunto e ainda explica como fazer um framework (not that good) para acessar
objetos de dados remotamente via RMI.

O nome do livro eu não me lembro, mas procure por JDBC e editora O'Reilly, e
será fácil achar.

Agora como sugestão, dependendo do perfil de sua aplicação, talvez você
possa usar EJB (J2EE). Vai poupar muito trabalho, contudo, vai exigir a
aquisição de um middleware na solução final!

Agradeco a todos antecipadamente...

Nilton de Souza


Ricardo Munhoz Santiago (CPM Sistemas)
Sun Certified Programmer for the JAVA 2 Platform


Come and get some !!!


--- LISTA SOUJAVA ---
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
-