WebServices - Necessito Ajuda (S.O.S.)

Colegas, neccesito ajuda…

… Já implementei alguns webServices simples (JWS’s) com o Axis. Mas agora tenho um problema…

Agora um depto quer integrar o sistema e eles desejam enviar uma lista de dados a ser processados. Eles querem enviar via XML

Ex:


sssim@yahoo.com.br

55
5555 5555

Pedro


all@eu.com

55
7777 7777

alex

Qual classe devo colocar na assintura do meu método pra receber esta lista? Um Bean?
Qual é ‘tipo’ mais adequdo para receber este parametro de entrada ?

A aplicação que vai consumir o WS eh DOT NET.

============================================
Agradeço desde jah a atenção dos colegas, sou neófito em java e preciso de uma ajuda

olá!
sim, vc pode criar um javabean Pessoa, com atributos correspondentes aos elementos XML (email, ddd, etc.)
e a assinatura do seu metodo pode ser um array de objetos da classe Pessoa.

Crie um bean com os atributos do xml e use o Xtream para transformar em objeto:

http://xstream.codehaus.org/tutorial.html

xstream.alias("pessoa", PessoaDTO.class);
PessoaDTO pessoa = (PessoaDTO) stream.fromXML(xml);

Sem gambiarras…

Evite usar JWS do Axis. Aquilo é muito trivial.

Se vai usar Axis, use da forma mais adequada (aqui no GUJ tem um tutorial completo).

Mas acho melhor usar outras ferramentas, mais simples, como XFire ou então a anotação @WebService do EJB3.

Aí eles usam a ferramenta .NET para gerar o cliente deles.

Afinal, no WS não é o cliente que manda como fazer (não deveria ser), mas sim o fornecedor do serviço. E os clientes aderem ao padrão.

Pessoal,
‘First of all’ muito obrigado pelos posts, bom saber que a comunidade de desenvolvedores Java é tão unida…

Tipo consegui gerar WebService com Beans na assinatura dos métodos (gerei pelo Axis mas sem usar JWS).
([u]Daniel, vc tem razão, JWS é meio ruim mesmo, só aceita tipos primitivos, wrappers e Strings[/u])
Não manjo muito mas percebi no WSDL que ele transforma o Beans em tipo simples numa tag …

Por mim eu colocava Beans na assinatura dos métodos e gerava o WS com o AXIS e blz…

Porém o pessoal falou que os Dados devem trafegar em XML, eles querem enviar um documento XML com todos os campos. O pessoal da Fábrica de Software de um cliente me disse que eles utilizavam String :shock: na assinatura do método para receber um conteúdo de tags XML. Achei esquisito....

[color=blue]O que vcs acham mais certo fazer: (Qual a prática + indicada)
(A) um método que possui Beans na assinatura dos métodos e gerar o WS pelo Axis
(B) fazer um método que recebe um texto (seja String ou outra classe) e a partir do texto processa os dados ?
[/color]

ola,

como vc fez pro webserver enviar tipos complexos?
estou tentanto utilizar a api de webservices q veio no java 6 ( sem axis, no braço msm ), mas quando tento enviar um bean ou uma collection tenho um erro de soap encoding. alguma sugestao?

obrigado,

andre

Para gerar o WS com os tipos complexos segui mais ou menos o que está na URL abaixo:

http://www.javafree.org/content/view.jf?idContent=106

Instalei o Axis. Fiz as classes e o arquivo de deploy.
Coloquei as classes na pasta classes do Axis.

só que o deploy eu não fiz via linha de comando,
fiz uma classe que realiza o deploy.


Espero que tenha te ajudado amigo.
Qualker coisa pergunta ai, blz?

import org.apache.axis.client.AdminClient;

public class teste {

	/**
	 * Metodo que publica o WebService
	 * Colocar as classes na pasta Tomcat 5.5\webapps\axis\WEB-INF\classes\
	 * e executar
	 * @param args
	 */
	public static void main(String[] args) {
		AdminClient admin = new AdminClient(); 
		try{
		
			String x = admin.process(new String[] { "-p","-8080", "C:\\eclipse\\Projetos\\testeWSA2\\deploy.wsdd" });
			System.out.println(x);
	
		}catch(Exception e){
			e.printStackTrace();
		}
		System.out.println("fim");
	}

}