Web Service: metodo retornar um Vector  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
trevezani
Entusiasta Java

Membro desde: 29/03/2006 11:03:54
Mensagens: 23
Offline

E ai Pessoal,

Estou tentando criar um WS que retorna uma lista de objetos só que eu acho que tem que serializar para eu receber no meu cliente. Alguém sabe alguma coisa a respeito???

[],s

Alberto
okara
JavaTeenager

Membro desde: 16/05/2005 08:47:08
Mensagens: 152
Offline

Se vc estiver usando o Axis, você deve fazer algumas configurações e colocar um código cliente para registrar o Tipo.
Eu acho que no caso de um Vector tem que fazer o registro do tipo.
Dê uma olahada nos exemplos do Axis.
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Dá para retornar um array de objetos, se não me engano. Pelo menos tentei com o WebSphere e funciona OK.
[WWW]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Com o Apache Axis 1.3 você gera um WS com retorno de um array de um tipo, sem maiores problemas e sem configurações extras. Ele mesmo cuida de configurar os BeanSerializer.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
trevezani
Entusiasta Java

Membro desde: 29/03/2006 11:03:54
Mensagens: 23
Offline

Hoje eu estou usando o AXIS 1.2 e estou usando um deploy simples. Tenho que confgurar alguma coisa nele???



Server:



O que posso fazer para funcionar?

[],s
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

A dica que demos é usar um array de objetos, não um Vector. No seu caso, você poderia retornar um Filme[].

(Para transformar um Vector de Filme em um Filme[] consulte o método toArray da interface java.util.List).
[WWW]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

O próprio Axis gera para você o WSDD, não precisa criar na mão.

Olha um WSDD meu de exemplo, gerado pelo Axis:


gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
trevezani
Entusiasta Java

Membro desde: 29/03/2006 11:03:54
Mensagens: 23
Offline

Vou fazer o teste retornando um array. No caso não sabia que o AXIS gerava o WSDD não. Como eu faço para gerar o WSDD automaticamente para minha classe Catalogo?

Valews

=)
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

1 - Gerar o WSDL da sua classe de serviço
2 - Gerar o "skeleton" a partir do WSDL gerado (ele tbm gera o WSDD)

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
trevezani
Entusiasta Java

Membro desde: 29/03/2006 11:03:54
Mensagens: 23
Offline

Tem como você me passar os comandos para gerar o WSDL e o Skeleton???

Valews

=)
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

http://java.danieldestro.com.br
Lá tem uma apostila sobre Axis.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
luisfabio_sm
What is classpath?

Membro desde: 13/09/2006 22:10:39
Mensagens: 6
Offline

Srs. to com esse mesmo prblema, não consigo retornar nem um array de objetos nem um vector. vejam meu wservice
import java.util.*;

public class WServiceFunVideo {

//Objetos de Negocio
private tNegocioAgenda objNegAgenda = new tNegocioAgenda();
private tNegocioFilme objNegFilme = new tNegocioFilme();
private tNegocioListaEspera objNegListaEspera = new tNegocioListaEspera();

private tcelFilmes objFilme = new tcelFilmes();


public tcelFilmes[] teste(String str){

//Vector vec = new Vector();
tcelFilmes obj1 = new tcelFilmes();
tcelFilmes obj2 = new tcelFilmes();
tcelFilmes obj3 = new tcelFilmes();

tcelFilmes[] ArraytcelFilmes = new tcelFilmes[3];

obj1.IdFilme = 1;
obj1.strNome = "teste";
obj1.strGenero = "av";

obj2.IdFilme = 2;
obj2.strNome = "teste 2";
obj2.strGenero = "av2";

obj3.IdFilme = 3;
obj3.strNome = "teste3";
obj3.strGenero = "av3";


ArraytcelFilmes[0] = obj1;
ArraytcelFilmes[1] = obj2;
ArraytcelFilmes[2] = obj3;

/*
vec.add(obj1);
vec.add(obj2);
vec.add(obj3);
*/
return ArraytcelFilmes;

}
}

To usando o TOMCAT com axis 1.4.

Me ajudem.


thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Tio, você poderia postar a classe "tcelFilmes " também? Só para o pessoal poder lhe ajudar.
[WWW]
luisfabio_sm
What is classpath?

Membro desde: 13/09/2006 22:10:39
Mensagens: 6
Offline

Ok segue a classe
ublic class tcelFilmes {

//Atributos
/*
* "IdFilme" int8 NOT NULL,
"vchNome" varchar(200) NOT NULL,
"vchGenero" varchar(100)
*/
Integer IdFilme;
String strNome;
String strGenero;

public tcelFilmes(){
// TODO Auto-generated constructor stub
}
}


Mas meu problema acredito estar no Vetor do Wservice. Coloquei uns debugs p/ ver o result na janela do Tomcat e vi que ao ler o vetor ele não consegue passar do primeiro registro. To mandando em anexo uma copia do meu WS.
 Nome do arquivo WServiceFunVideo.java [Disk] Download
 Descrição MEU WS.
 Tamanho 2 Kbytes
 Baixado:  103 vez(es)

 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team