Erro NCLuaSOAP e WS JAX

46 views
Skip to first unread message

Luis Reis

unread,
Dec 13, 2012, 5:39:24 PM12/13/12
to dev...@googlegroups.com
Manoel, estou tentando utilizar o modulo ncluasoap com web service criado no netbeans, mas da um erro no tcp.lua na linha 63 - assert(coroutine.resume(co, ...)) - e não passa disso. Estou começando em TVD, se puder me ajudar agradeço.

Código usado para o ncluasoap:

package.path = package.path .. ';lib/?.lua'
require "ncluasoap"
local cc = "Marituba"
--local ip = "192.168.1.103"
local msgTable = {
--address = "http://"..ip..":8084/JWPet/LocalVacina",
address = "http://localhost:8084/JWPet/Pessoa",
namespace = "http://WS/",
operationName = "consultaLocais",
params = { cidade = cc }
}
local function resposta (result)
print ("\n\n ********* Saída da Aplicação *********\n")
print ("Cidade: " ..cc)
-- mostra conteudo
print("-------------------------------------\n"..result)
print ("\n********* Saída da Aplicação *********\n\n")
end
ncluasoap.call(msgTable, resposta,'1.1', 8084, true)


Segue o erro gerado pelo SciTE:

>lua -e "io.stdout:setvbuf 'no'" "main.lua"
<?xml version="1.0"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://WS/"
>
<soap:Body>
<ns1:consultaLocais>
<cidade>Marituba</cidade>
</ns1:consultaLocais>
</soap:Body>
</soap:Envelope>
lua: C:\Program Files (x86)\Lua\5.1\tcp.lua:63: C:\Program Files (x86)\Lua\5.1\tcp.lua:95: attempt to index upvalue 'event' (a nil value)
stack traceback:
[C]: in function 'assert'
C:\Program Files (x86)\Lua\5.1\tcp.lua:63: in function 'resume'
C:\Program Files (x86)\Lua\5.1\tcp.lua:79: in function 'execute'
C:\Program Files (x86)\Lua\5.1\http.lua:89: in function 'request'
.\ncluasoap.lua:365: in function 'call'
main.lua:26: in main chunk
[C]: ?
>Exit code: 1


Luis Reis

Manoel Campos da Silva Filho

unread,
Dec 14, 2012, 2:15:49 PM12/14/12
to devdtv
Parece que está tentando executar o código fora do ginga (direto do windows)
e isto não vai funcionar.
Vc precisa executar dentro de alguma implementação de Ginga como o Ginga Virtual Set-bop Box
da PUC-Rio.


logo 
Manoel Campos Silva Fh, Me
IFTO - Instituto Federal do Tocantins



2012/12/13 Luis Reis <luisc...@gmail.com>


Luis Reis

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Desenvolvimento para TV digital" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/devdtv/-/IQZ2T4v1F3cJ.
Para postar neste grupo, envie um e-mail para dev...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para devdtv+un...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/devdtv?hl=pt-BR.


Luis Reis

unread,
Jan 2, 2013, 4:47:40 PM1/2/13
to dev...@googlegroups.com

        Manoel, obrigado pela dica anterior. Agora estou usando o exemplo (exemplo8jax.ncl / lua) para consumir WS Java e não está retornando nada. Passo o nome da cidade e deveria retornar os endereços relacionados a ela. O WS está funcionando pois com cliente java retorna o esperado.
        Estou usando Eclipse com os plugins NCL Eclipse e Lua Eclipse, além da Virtual Set-top-box v.0.12.4. Agradeço a ajuda.

Segue mensagens da Virtual STB:
 Testando o WEB SERVICE

<?xml version="1.0"?>
<soap:Envelope
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:ns1="http://WS/"
>
  <soap:Body>
    <ns1:consultaLocais>
      <cidade>Marituba</cidade>
    </ns1:consultaLocais>
  </soap:Body>
</soap:Envelope>

Segue o código alterado do exemplo8jax:


package.path = package.path .. ';lib/?.lua'

require "ncluasoap"

local function getResponse(result)
  print("\n\n\n--------------------------------RESULTADO--------------------------------")
  print(result)
  print("--------------------------------RESULTADO--------------------------------\n\n\n")
  --event.post {class="ncl", type="presentation", action="stop"}
end
 
--Cria uma table contendo os dados para envio da requisição SOAP ao WS
local msgTable = {
  address = "http://192.168.100.103:8084/JWPet/Pessoa",
  --Namespace exatamente como especificado no WSDL, neste caso, terminando com /

  namespace = "http://WS/",
  operationName = "consultaLocais",
  --print ("Conectando") --passando
  params = {
    cidade = "Marituba"
  }
}

--O último parâmetro (externalXsd), de valor true, indica
--que o WS usa um arquivo XSD externo para especificar as definições
--de tipos. Isto influencia no formato da requisição SOAP.
--O valor padrão dele é false.
--Veja documentação do método ncluasoap.call para mais detalhes.
print("Testando o WEB SERVICE")
ncluasoap.call(msgTable, getResponse, "1.1", 8084, true)


Luis Reis
--
   Luis C. Q. Reis
Téc. Proc. de Dados
   (91) 9962-4129

Manoel Campos da Silva Filho

unread,
Jan 4, 2013, 1:06:41 PM1/4/13
to dev...@googlegroups.com

Vc precisa ver o q o ws retorna. Se for uma struct ou array vc precisa fazer um for no parâmetro result Do getresponse em lua

Manoel Campos da Silva Filho

unread,
Jan 4, 2013, 1:09:06 PM1/4/13
to dev...@googlegroups.com

Se vc passar a porta na url, não precisa passar no call, pode passar nil no lugar

Em 02/01/2013 20:27, "Luis Reis" <luisc...@gmail.com> escreveu:

Luis Reis

unread,
Jan 5, 2013, 10:42:25 PM1/5/13
to dev...@googlegroups.com

         O WS (criado no Netbeans 7.2) retorna uma String (um nome). Envia-se o nome da cidade e o WS deveria retornar o nome de uma pessoa, assim que estiver ok faço um for para retornar todas as pessoas cadastradas no banco mysql. Já até criei outro WS no eclipse usando Axis2 que parece não usar uma arquivo externo mas continuo sem sucesso, não há retorno. Não sei o que estou fazendo de errado... rsss

Manoel Campos da Silva Filho

unread,
Jan 9, 2013, 4:11:30 PM1/9/13
to dev...@googlegroups.com

Teste pelo netbeans pra ver se seu ws ta retornando certo

Manoel Campos da Silva Filho

unread,
Jan 11, 2013, 7:28:42 AM1/11/13
to devdtv

Luis, no terminal é exibida a mensagem soap (xml) enviada e a retornada.
Me passe a mensagem retornada.
O método getResponse está executando?


logo 
Manoel Campos Silva Fh, Me
IFTO - Instituto Federal do Tocantins



2013/1/9 Manoel Campos da Silva Filho <manoel...@gmail.com>
Reply all
Reply to author
Forward
0 new messages