kubin
Outubro 8, 2010, 1:24pm
#1
Pessoal, boa tarde, gostaria de saber se isso deveria funcionar
@Remote
interface A {
public void guj(String a,String b);
public void guj(String a);
}
@WebService
@Stateless
@Remote(A.class)
class B implements A{
@Override
public void guj(String a, String b){ }
@Override
public void guj(String a){}
}
}
Isso deveria funcionar?
quando eu starto o jboss ele da erro
Caused by: java.lang.IllegalStateException: Endpoint already registered:
Alguem já passou por isso?
Vc tem um interface então usa implements e não extends:
class B implements A{
@Override
public void guj(String a, String b){ }
@Override
public void guj(String a){}
}
kubin
Outubro 8, 2010, 2:05pm
#3
ah sim, já estou usando implements, escrevi errado no post, porém continua dando erro!
Pela exceção, o JBoss diz que já tem um Endpoint registrado.
Vai no servidor e apaga coisas referentes ao WebService q está implementando, e depois gere de novo.
kubin
Outubro 8, 2010, 2:25pm
#5
Oh,
Deletei, dei um clean
agora oh erro que ele fala, vou adaptar ao exemplo que dei
Caused by: java.lang.IllegalArgumentException: Duplicate operation with name=guj
Acho que ele não aceita os métodos iguais
Não, não deveria funcionar. Você não pode ter duas operações com nomes iguais em um webservice.
kubin
Outubro 8, 2010, 2:27pm
#7
[quote=Ataxexe]Não, não deveria funcionar. Você não pode ter duas operações com nomes iguais em um webservice.
bom, vo testar aqui já digo se deu certo!
kubin
Outubro 8, 2010, 2:40pm
#8
bom era isso mesmo Ataxexe!!
tive que mudar o nome do metodo!!
Muito Obrigado pela ajuda!
[quote=kubin]bom era isso mesmo Ataxexe!!
tive que mudar o nome do metodo!!
Muito Obrigado pela ajuda![/quote]
Na verdade vc não sobrescreveu o método(override), fez uma sobrecarga(overload).
Tentou fazer esse teste sem as anotações de @Override ?
Pq como os métodos possuem assinaturas diferentes, acho que não deveria dar problema.
Ataxexe
Outubro 8, 2010, 3:00pm
#10
Na verdade no Java não há problemas em fazer sobrecarga. O problema foi no webservice que a classe representa (ele que não suporta a sobrecarga).
A bom, não sabia que tinha esse problema em webservice.
Achei que se aplicava as mesmas regras básicas de desenvolvimento.