| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/05/2011 11:36:05
|
Cmcampos1986
Thread.start()
![[Avatar]](/images/avatar/39486d56451da11eec6a18a714f9f46e.png)
Membro desde: 22/05/2011 10:43:00
Mensagens: 27
Offline
|
Caros... bom dia!
Comecei a usar a pouco tempo o J2ME com NetBeans e me deparei com um erro que não consigo desvendar.
Vamos a ele!
Fiz um Web Service em .NET com apenas um método que retorna 9 códigos de acordo com uma procedure que eu defini para buscar o resultado.
O XML gerado, me retorna:
<?xml version="1.0" encoding="UTF-8"?>
-<ArrayOfString xmlns="http://tempuri.org/" xmlns sd="http://www.w3.org/2001/XMLSchema" xmlns si="http://www.w3.org/2001/XMLSchema-instance">
<string>39</string>
<string>17</string>
<string>53</string>
<string>0</string>
<string>42</string>
<string>17</string>
<string>69</string>
<string>15</string>
<string>19</string>
</ArrayOfString>
Feito isso, criei a codificação no NetBeans que é executada uma tarefa no final da tela waitscreen:
public SimpleCancellableTask getTask() {
if (task == null) {
// write pre-init user code here
task = new SimpleCancellableTask();
task.setExecutable(new org.netbeans.microedition.util.Executable() {
public void execute() throws Exception {
// write task-execution user code here
try
{
String namespace = "http://tempuri.org/SelecionarChamados";
String url_ws = "http://localhost:2925/Service_Chamados.asmx";
String method ="SelecionarChamados";
SoapObject request = new SoapObject(namespace, method);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
//Web method call
HttpTransport HttpTransport = new HttpTransport(url_ws);
HttpTransport.call(namespace, envelope);
//get the response
Object result = (Object) envelope.getResponse();
String res = result.toString();
TextBox tb = getTextBox();
for (int i=0; i< res.length();i++)
{
tb.insert(res.toCharArray(), i);
}
}
catch(Exception e)
{
e.getMessage();
}
}
});
// write post-init user code here
}
return task;
}
Estou com dificuldade de mostrar os resultados obtidos do XML, e o erro acontece justamente nessa parte.
A idéia principal é mostar no Textbox esses 9 números através de um array (acredito que seja pelo array pois construi com um array de String o método do Web Service).
Como é a primeira vez que eu desenvolvo em JAVA, estou com essa dificuldade.
Se for possível, gostaria da colaboração de vocês para me auxiliarem nesse caso.
Obrigado pela atenção!
This message was edited 1 time. Last update was at 09/06/2011 06:30:28
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2011 08:02:32
|
thiago.filadelfo
Virtual Machine Man
![[Avatar]](/images/avatar/a0dabc6f2a8ea64b7fb210eec0175a02.jpg)
Membro desde: 07/07/2007 00:32:26
Mensagens: 579
Localização: São Paulo
Offline
|
Olá
Talvez esse tutorial possa ajudar.
Veja a parte final dele - Acessando o Web Service via J2ME
http://javafree.uol.com.br/artigo/871485/
Espero ter ajudado
Flwss
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2011 10:10:59
|
Cmcampos1986
Thread.start()
![[Avatar]](/images/avatar/39486d56451da11eec6a18a714f9f46e.png)
Membro desde: 22/05/2011 10:43:00
Mensagens: 27
Offline
|
Muito obrigado thiago.filadelfo!
Vou ler este artigo que você me mandou e adequar a minha necessidade.
Caso eu tenha dúvidas, volto a escrever!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2011 13:41:44
|
renanpto
JavaEvangelist
![[Avatar]](/images/avatar/35df583a06ef378df8540f6db2d36534.jpg)
Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline
|
Eu já implementei um WebService .Net e o acessando pelo Jme.
Lembro que criava os stubs pelo proprio SDK do JME e importava para minha app. Era super tranquilo.
Boa sorte..
|
Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2011 14:01:37
|
thiago.filadelfo
Virtual Machine Man
![[Avatar]](/images/avatar/a0dabc6f2a8ea64b7fb210eec0175a02.jpg)
Membro desde: 07/07/2007 00:32:26
Mensagens: 579
Localização: São Paulo
Offline
|
Olá renanpto
Tem sim essa opção de gerar pelo WTK, mas depende do celular ter a JSR 181 implementada.
Para os celulares que não tenham a implementam desta JSR, usamos o Ksoap e Kxml, ou senão fazemos um.
Flwsss
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/05/2011 07:51:34
|
Cmcampos1986
Thread.start()
![[Avatar]](/images/avatar/39486d56451da11eec6a18a714f9f46e.png)
Membro desde: 22/05/2011 10:43:00
Mensagens: 27
Offline
|
Bom dia!
Consegui fazer extamente o que eu queria e agora o resultado está sendo mostrado, porém gostaria de tirar mais uma dúvida que eu acredito que seja bem simples.
Tenho este trecho aqui:
SoapObject result = (SoapObject) envelope.getResponse();
TextBox tb = getTextBox();
String res = result.getProperty(0).toString();
for (int i=0; i< res.length();i++)
{
tb.insert(result.getProperty(i).toString(), 0);
}
A parte do for... mais específico o tb.insert(result.getProperty(i).toString(), 0);, me retorna o resultado:
2164344216534221554452153517213337521331313101949
Sendo que eu preciso fazer uma quebra de linha para que ele fique dessa forma:
2164344
2165342
2155445
2153517
2133375
2133131
3101949
Qual seria a forma mais fácil de fazer essa quebra?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/05/2011 10:04:12
|
thiago.filadelfo
Virtual Machine Man
![[Avatar]](/images/avatar/a0dabc6f2a8ea64b7fb210eec0175a02.jpg)
Membro desde: 07/07/2007 00:32:26
Mensagens: 579
Localização: São Paulo
Offline
|
Olá
Você está enviando no webservice tudo junto?
Caso sim, poderia colocar um caracter que possa ser um identificado para suas quebras.
Quando realizava uma transferencia de dados servidor ao celular ou celular ao servidor, usava XML ou Json.
Creio que possa ajudar para a comunicação das partes.
Espero ter ajudado
Flwss
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/05/2011 10:36:41
|
Cmcampos1986
Thread.start()
![[Avatar]](/images/avatar/39486d56451da11eec6a18a714f9f46e.png)
Membro desde: 22/05/2011 10:43:00
Mensagens: 27
Offline
|
Consegui cara... fiz isso aqui:
tb.insert(result.getProperty(i).toString() + "\r\n", 0);
Só adicionei o "\r\n" e ele quebrou certinho!
Mais uma vez muito obrigado!
This message was edited 1 time. Last update was at 09/06/2011 06:30:06
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/06/2011 09:06:29
|
fabiolira
Thread.start()
Membro desde: 10/10/2008 23:33:05
Mensagens: 37
Offline
|
Cmcampos1986 wrote:Bom dia!
Consegui fazer extamente o que eu queria e agora o resultado está sendo mostrado, porém gostaria de tirar mais uma dúvida que eu acredito que seja bem simples.
Tenho este trecho aqui:
SoapObject result = (SoapObject) envelope.getResponse();
TextBox tb = getTextBox();
String res = result.getProperty(0).toString();
for (int i=0; i< res.length();i++)
{
tb.insert(result.getProperty(i).toString(), 0);
}
A parte do for... mais específico o tb.insert(result.getProperty(i).toString(), 0);, me retorna o resultado:
2164344216534221554452153517213337521331313101949
Sendo que eu preciso fazer uma quebra de linha para que ele fique dessa forma:
2164344
2165342
2155445
2153517
2133375
2133131
3101949
Qual seria a forma mais fácil de fazer essa quebra?
Cara, tenho um problema parecido, meu Web Service é em .Net e a função retorna List<string>, quando gero o Stub pelo WTK o tipo do valor do resultado vira ArrayOfString e não sei ler esse cara na aplicação.
Vc alterou o tipo de dados do resultado da função do Web Service??? se sim, para qual???
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 07:15:00
|
Cmcampos1986
Thread.start()
![[Avatar]](/images/avatar/39486d56451da11eec6a18a714f9f46e.png)
Membro desde: 22/05/2011 10:43:00
Mensagens: 27
Offline
|
Bom dia fabiolira!
Então cara... no meu caso foi assim...
Eu tinha dois cenário:
Stubs (Adicionando um cliente Web Service)
KSOAP (Adicionando as bibliotecas e declarando a necessárias através da cláusula import)
Meu Web Service em .NET tem dois métodos simples: Um de selecionar e o outro de inserir.
Usando o Stub, o de inserir funcionou sem problemas, mas quando eu utilizei o de selecionar, não consegui fazer retornar também. Debuguei e vi que os índices são gerados de uma forma que eu nunca tinha visto. Tentei muitas vezes fazer retorná-lo mas não consegui.
Dessa forma, parti para o KSOAP2 e consegui tanto retornar como inserir.
INSERIR
RETORNAR
Agora eu só utilizo o KSOAP2!
Espero que tenha ajudado!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 07:16:57
|
Cmcampos1986
Thread.start()
![[Avatar]](/images/avatar/39486d56451da11eec6a18a714f9f46e.png)
Membro desde: 22/05/2011 10:43:00
Mensagens: 27
Offline
|
Haaaaaaaaa... declarei como global as variáveis:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 19:37:59
|
fabiolira
Thread.start()
Membro desde: 10/10/2008 23:33:05
Mensagens: 37
Offline
|
Cmcampos1986,
muito obrigado pela atenção dispensada, mas consegui resolver, segue a forma que consegui.
ArrayOfString as = new ArrayOfString();
try {
as = ws.retornaProduto();
} catch (RemoteException e1) {
e1.printStackTrace();
}
String[] reg = as.getString();
String datos = "";
for (int i=0; i<reg.length; i++) {
dados = dados + "," + reg[i];
}
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/08/2011 19:15:55
|
Cmcampos1986
Thread.start()
![[Avatar]](/images/avatar/39486d56451da11eec6a18a714f9f46e.png)
Membro desde: 22/05/2011 10:43:00
Mensagens: 27
Offline
|
fabiolira, como você montou o tipo ArrayOfString?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/08/2011 21:57:57
|
fabiolira
Thread.start()
Membro desde: 10/10/2008 23:33:05
Mensagens: 37
Offline
|
Cmcampos1986 wrote:fabiolira, como você montou o tipo ArrayOfString?
ArrayOfString as = new ArrayOfString();
try {
//pego no web service
as = ws.retornaProduto(); }
catch (RemoteException e1) {
e1.printStackTrace();
}
//carrego num array de string
String[] reg = as.getString();
String datos = "";
for (int i=0; i<reg.length; i++) {
dados = dados + "," + reg[i];
}
This message was edited 1 time. Last update was at 07/08/2011 21:59:30
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/08/2011 06:27:33
|
Cmcampos1986
Thread.start()
![[Avatar]](/images/avatar/39486d56451da11eec6a18a714f9f46e.png)
Membro desde: 22/05/2011 10:43:00
Mensagens: 27
Offline
|
A codificação eu entendi, é que na verdade eu instanciei ArrayOfString as = new ArrayOfString(); e o Netbeans não reconheceu.
ArrayOfString é uma classe que vc declarou?
|
|
|
 |
|
|