ASP clássico consumindo webservice feito em java

Pessoal não entendo de asp e to com uma missão de consumir um webservice no asp feito em java, eu fiz o webservice com axis2 e consegui consumir com java, o problema é fazer a encrenca desse ASP(versão antiga, muito antiga, o mais mais medieval que existe :lol: )

eu consegui isso:

                dim strUrlWS
 		strUrlWS = "http://172.16.6.253:8080/CBE/services/ConsultaProtocolo?wsdl"
		Set objSoap = Server.CreateObject("MSSOAP.SoapClient30")
		objSoap.ClientProperty("ServerHTTPRequest") = True
		objSoap.mssoapinit strUrlWS, "ConsultaProtocolo"
   //linha 36 do erro, ConsultaProtocolo eh meu servico
		
		dim Retorno
		Retorno = objSoap.consultaDeclaracao(VProtocolo,VCnpjCpf,VIndPerfil) 
		
		response.Write Retorno

mas ele traz esse resultado:

WSDLReader error '80020009'

WSDLReader:XML Parser failed at linenumber 0, lineposition 0, reason is: The operation timed out HRESULT=0x1: Incorrect function. - WSDLReader:Loading of the WSDL file failed HRESULT=0x80070057: The parameter is incorrect. - Client:One of the parameters supplied is invalid. HRESULT=0x80070057: The parameter is incorrect. 
funcVBS.asp, line 36

alguém poderia me ajudar, ou mais caridosamente se tiver um código em asp, já procurei na net, mas não funciona.
Agradeços a todos pela atenção.

Quando tive de fazer isso, como o MS SOAP Client é muito velho e não entende as coisas que foram criadas por web services atuais, eu simplesmente fiz o seguinte:

a) Solicitei ao cliente que se instalasse o .NET Framework 2.0 e 3.5 na máquina com ASP
b) Criei uma classe em C# que consumia esse web service, e que expunha uma interface COM - para tanto, usei o Visual Studio (2005 ou 2008)
c) Registrei essa classe (não no COM+, mas com COM mesmo, usando REGASM). Assim (com um bocado de esforço) foi possível fazer o ASP chamar uma classe COM que na verdade é um componente .NET.

Detalhes sangrentos:

  • Você tem de tomar cuidado com a interface do seu web service em Java. Talvez você tenha de tentar alterar a interface do seu web service até que o wizard do C# pare de reclamar de alguma coisa que ele não conseguiu entender no seu WSDL.
  • Não sei se é possível registrar a classe .NET no COM+. Quando tentei isso, só consegui fazer com que outras classes .NET conseguissem enxergar a classe .NET, mas não uma página ASP ou um programa VB 6.0. Deve haver alguma mágica que não sei fazer.

Voce esta passando os parametros de forma correta?,

The parameter is incorrect. - Client:One of the parameters supplied is invalid. HRESULT=0x80070057: The parameter is incorrect.

Aqui tem implementação legal em ASP:
http://imasters.uol.com.br/artigo/7348

[quote=thingol]Quando tive de fazer isso, como o MS SOAP Client é muito velho e não entende as coisas que foram criadas por web services atuais, eu simplesmente fiz o seguinte:

a) Solicitei ao cliente que se instalasse o .NET Framework 2.0 e 3.5 na máquina com ASP
b) Criei uma classe em C# que consumia esse web service, e que expunha uma interface COM - para tanto, usei o Visual Studio (2005 ou 2008)
c) Registrei essa classe (não no COM+, mas com COM mesmo). Assim (com um bocado de esforço) foi possível fazer o ASP chamar uma classe COM que na verdade é um componente .NET.

Detalhes sangrentos:

  • Você tem de tomar cuidado com a interface do seu web service em Java. Talvez você tenha de tentar alterar a interface do seu web service até que o wizard do C# pare de reclamar de alguma coisa que ele não conseguiu entender no seu WSDL.
  • Não sei se é possível registrar a classe .NET no COM+. Quando tentei isso, só consegui fazer com que outras classes .NET conseguissem enxergar a classe .NET, mas não uma página ASP ou um programa VB 6.0. Deve haver alguma mágica que não sei fazer.

[/quote]

UI :cry: , se foi difícil assim pra você Master Thingol, imagina pra um novato que nunca mexi com asp, e pior com o antigo, o problema não é nem ter que aprender, é o tempo, que é sempre pra ontem. E ainda vi a possibilidade de instalar o .NET 2.0 é menor que 0, aqui pra ter acesso a um diretório semi-público é em torno de várioas meses e depois de passar pelo LULA, imagina instalar, quase caíram da mesa. Cliente…só querem a solução…

:cry:

Se o servidor for Windows 2003 ou 2008, então o .NET Framework está instalado e você não precisa se preocupar. Que servidor está instalado?

[quote=thingol]Se o servidor for Windows 2003 ou 2008, então o .NET Framework está instalado e você não precisa se preocupar. Que servidor está instalado?
[/quote]
2000

Se você fosse um “master in C++” poderia tentar usar o GSOAP, e criar um componente ActiveX em C++ que fosse chamado pelo ASP.
Mas acho que não é esse o seu caso :stuck_out_tongue:

De qualquer forma, se você conseguir fazer um web service como REST e não SOAP (como é o caso do tal exemplo que o Pedrosa lhe passou) então fica um pouco mais fácil*, porque em última instância você só precisa enviar uma requisição http (POST ou GET dependendo do modelo do web service REST que você está usando).

  • Fácil é modo de dizer :stuck_out_tongue:

[quote=Pedrosa]Voce esta passando os parametros de forma correta?,

The parameter is incorrect. - Client:One of the parameters supplied is invalid. HRESULT=0x80070057: The parameter is incorrect.

Aqui tem implementação legal em ASP:
http://imasters.uol.com.br/artigo/7348
[/quote]

eu tirei os parâmetros, deixei so uma resposta teste, mesmo assim deu mesmo erro, ou seja, reclamou sendo que nem tem parâmetro a ser passado.

valeu pelo link, to trabalhando nessa possiblidade agora.

[quote=thingol] Se você fosse um “master in C++” poderia tentar usar o GSOAP, e criar um componente ActiveX em C++ que fosse chamado pelo ASP.
Mas acho que não é esse o seu caso :stuck_out_tongue:
[/quote]

não é e ta longe, longe mesmo :stuck_out_tongue:

é estou indo nesse rumo agora, seja o Deus quiser :smiley:

se eu conseguir resolver, coloca a solução aqui…

Obrigado pela ajuda…

Voce poderia disponibilizar uma Resposta JSON ou inves de wsdl e consumir via JavaScript num modelo de ws rest.

O ASP poderia consumir um serviço REST no Java, de uma olhada no Jersey :wink:

[quote=Javabuntu]Pessoal não entendo de asp e to com uma missão de consumir um webservice no asp feito em java, eu fiz o webservice com axis2 e consegui consumir com java, o problema é fazer a encrenca desse ASP(versão antiga, muito antiga, o mais mais medieval que existe :lol: )

eu consegui isso:

                dim strUrlWS
 		strUrlWS = "http://172.16.6.253:8080/CBE/services/ConsultaProtocolo?wsdl"
		Set objSoap = Server.CreateObject("MSSOAP.SoapClient30")
		objSoap.ClientProperty("ServerHTTPRequest") = True
		objSoap.mssoapinit strUrlWS, "ConsultaProtocolo"
   //linha 36 do erro, ConsultaProtocolo eh meu servico
		
		dim Retorno
		Retorno = objSoap.consultaDeclaracao(VProtocolo,VCnpjCpf,VIndPerfil) 
		
		response.Write Retorno

mas ele traz esse resultado:

WSDLReader error '80020009'

WSDLReader:XML Parser failed at linenumber 0, lineposition 0, reason is: The operation timed out HRESULT=0x1: Incorrect function. - WSDLReader:Loading of the WSDL file failed HRESULT=0x80070057: The parameter is incorrect. - Client:One of the parameters supplied is invalid. HRESULT=0x80070057: The parameter is incorrect. 
funcVBS.asp, line 36

alguém poderia me ajudar, ou mais caridosamente se tiver um código em asp, já procurei na net, mas não funciona.
Agradeços a todos pela atenção.
[/quote]

Javabuntu, tente isso sua linha 36 (linha 5 do seu exemplo)

    Call objSoap.mssoapinit(strUrlWS, "ConsultaProtocolo")