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
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 Boxda PUC-Rio.
Manoel Campos Silva Fh, Me
IFTO - Instituto Federal do Tocantins
--2012/12/13 Luis Reis <luiscqreis@gmail.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
--
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 devdtv@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para devdtv+unsubscribe@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/devdtv?hl=pt-BR.
Você está recebendo esta mensagem porque se inscreveu no grupo "Desenvolvimento para TV digital" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para devdtv@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para devdtv+unsubscribe@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/devdtv?hl=pt-BR.
--
Luis C. Q. Reis
Téc. Proc. de Dados
(91) 9962-4129 --
Você está recebendo esta mensagem porque se inscreveu no grupo "Desenvolvimento para TV digital" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para devdtv@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para devdtv+unsubscribe@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/devdtv?hl=pt-BR.
0 comentários:
Postar um comentário