Consegui enviar para o webservice usando o KSOAP criando outros SoapObject e adicionando as propriedades com o PropertyInfo.
Só que o webservice esta me retornando isso:
Não use ArrayList como parâmetros de WebService. Use arrays mesmo pois o webservice precisa ser independente da linguagem (o PHP, por exemplo, não ‘saberia’ criar um ArrayList).
Se você realmente precisar expor coisas relativas à linguagem, creio que RMI possa ser mais útil nesse caso.
Sim mas a sua classe de ArrayList que você passará por parametro tem que estar identica igualzinha a sua classe de ArrayList que recebe como parametro.
ficaria assim no caso !!! tipo simulando
[b] Usuario usuario = new Usuario();
usuario.Codigo = 156;
usuario.Login = Ck;
usuario.Senha = 123456; [/b]
PropertyInfo propertyInfo = new PropertyInfo();
propertyInfo.setName("usuario"); > Parametro do seu Ws.
propertyInfo.setValue(usuario); > Seu objeto como parametro.
propertyInfo.setType(Usuario.class); > Sua classe serializada.
Isto que o Ataxexe disse é fato.
Post 26/03/2012 18:30:07 Assunto: Re:Enviar List como parâmetro para Web Service
Não use ArrayList como parâmetros de WebService. Use arrays mesmo pois o webservice precisa ser independente da linguagem (o PHP, por exemplo, não ‘saberia’ criar um ArrayList).
Se você realmente precisar expor coisas relativas à linguagem, creio que RMI possa ser mais útil nesse caso.
[quote=matheusms]C;k ,
após serializar a classe dessa maneira, é só adicionar elas em um List<> ( ou ArrayList<>) e adicionar nas propriedades do SoapObject? [/quote]
Tem esses massetes aqui tambem.
você cololou a sua classe de list identica a do web service !
tudo até os parametros Letras maisculas e minusculas.?
a classe que vai ser serializada como parametro tem que ser identica a classe que será recebida pelo Ws.
Usuario usuario = new Usuario();
usuario.Codigo = 156;
usuario.Login = Ck;
usuario.Senha = 123456;
PropertyInfo propertyInfo = new PropertyInfo();
propertyInfo.setName("usuario"); > Parametro do seu Ws.
propertyInfo.setValue(usuario); > Seu objeto como parametro.
propertyInfo.setType(Usuario.class); > Sua classe serializada.
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
envelope.addMapping(NAMESPACE, "Usuario",new Usuario().getClass());
HttpTransportSE transport = new HttpTransportSE(URL);
envelope.implicitTypes = true; <<<
transport.call(SOAP_ACTION, envelope);