Java consumindo webservice em Delphi 7

Caros colegas,

Será que é possivel consumir um webservice feito em Delphi 7 com Java/Axis.

Já me disseram que o padrao do AXIS é doc/literal e o Delphi 7 é XML/RPC, más que o AXIS também trabalha com RPC, más
pergunto eu: Como faço para ativar isso no cliente Java?

Quando tento gerar as classes via WSDL2JAVA está dando o seguinte erro:

>java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java http://localhost:8080/cgi-bin/acconsclient.exe/wsdl/IacConsClient -p "br…acconsclient.clientws"

log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.
WSDLException (at /definitions/binding/operation[1]/input): faultCode=INVALID_WSDL: Element ‘{http://schemas.xmlsoap.org/wsdl/}input’ contained unexpected attributes: ‘message’:
at com.ibm.wsdl.util.xml.DOMUtils.throwWSDLException(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseBindingInput(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseBindingOperation(Unknown Source)

    at com.ibm.wsdl.xml.WSDLReaderImpl.parseBinding(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
    at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:516)
    at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
    at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
    at java.lang.Thread.run(Thread.java:619)

Recentemente tive exatamente o mesmo problema, o Axis(e nem o XFire) reconheciam o WSDL gerado pelo Delphi7 - especificamente este atributo ‘message’-.

A solução que adotei foi o fornecedor re-implementar o webservice em .NET.

[quote=Rafael Nunes]Recentemente tive exatamente o mesmo problema, o Axis(e nem o XFire) reconheciam o WSDL gerado pelo Delphi7 - especificamente este atributo ‘message’-.

A solução que adotei foi o fornecedor re-implementar o webservice em .NET.[/quote]

Rafael Nunes, tudo bom?

Estou exatamente com esse mesmo problema.

E meu fornecedor não está propicio a reescrever esse serviço em outra linguagem. Alguma sugestão? Estou desesperado já… rsrs…

Abraços

Na verdade é no próprio Delphi pelo que me informaram, quando ele vai gerar o Web Service, há um checkbox ‘Generare as .NET’(algo do tipo), foi só ele marcar esse checkbox.

Gerado no formato do Delphi7, só conseguiram consumir pelo próprio Delphi.

[quote=Rafael Nunes]Na verdade é no próprio Delphi pelo que me informaram, quando ele vai gerar o Web Service, há um checkbox ‘Generare as .NET’(algo do tipo), foi só ele marcar esse checkbox.

Gerado no formato do Delphi7, só conseguiram consumir pelo próprio Delphi.[/quote]

Você não saberia dizer ao certo onde eu mudo isso no Delphi nao né? A pessoa que criou o serviço ta aqui comigo agora e nao ta achando essa opcao no delphi

:frowning:

Nem idéia, meu fornecedor que fez isso.

Cara, o negoço tá dificil aqui viu.

O que percebi é que a estrutura e, os schemas, gerados no wsdl do serviço feito em delphi são totalmente diferentes dos que que eu gero em java.

O problema é que não consigo criar nem os esquelos para gerar o cliente pois me gera esse erro:

Error in generating Java from WSDL:  WSDLException (at /definitions/binding/operation/input): faultCode=INVALID_WSDL: Element '{http://schemas.xmlsoap.org/wsdl/}input' contained unexpected attributes: 'message': 

Se alguém tiver uma luz ai seria de muita ajuda.

[]'s

[quote=rbamartins]O que percebi é que a estrutura e, os schemas, gerados no wsdl do serviço feito em delphi são totalmente diferentes dos que que eu gero em java.
[/quote]

Na verdade esse Schema que ele gera é totalmente diferente de tudo.E só vi ele sendo consumido através do próprio Delphi. Pode pegar qualquer WSDLpúblico(Google, Xmethods, etc), é bem diferente.

Ja tentou gerar com o cliente do Axis2? Esse foi o único teste que não fiz.
Na pior das hipóteses, tenta criar uma requisião SOAP na unha.

[quote=Rafael Nunes][quote=rbamartins]O que percebi é que a estrutura e, os schemas, gerados no wsdl do serviço feito em delphi são totalmente diferentes dos que que eu gero em java.
[/quote]

Na verdade esse Schema que ele gera é totalmente diferente de tudo.E só vi ele sendo consumido através do próprio Delphi. Pode pegar qualquer WSDLpúblico(Google, Xmethods, etc), é bem diferente.

Ja tentou gerar com o cliente do Axis2? Esse foi o único teste que não fiz.
Na pior das hipóteses, tenta criar uma requisião SOAP na unha.[/quote]

Rafael Nunes, obrigado pela resposta.

Cara ja tentei com o axis2, com o jax-ws, com o axis 1.3 e nada.
Realmente o que ele gera eh diferente de tudo.
Olha o que o thingol me disse nesse post http://www.guj.com.br/posts/list/0/94112.java#504344.

E eh isso que estou argumentando com eles agora, q o servico deles n eh interoperavel.

Ja tentei criar a requisicao na unha tambem (risos) e quando faco, por exemplo, um call.invoke(passandoOsParametros) ele da um erro um pouco diferente mas eh gerado pelo mesmo motivo.
Ele diz q as definicoes das tags nao estao formadas corretamente e nao valida o schema.

Entao eh isso, acho que cheguei no ponto que eu queria para argumentar fortemente com eles.

Obrigado pela atencao e pela ajuda.

Abracos e qualquer coisa estamos aqui.

Como disse no outro post, assim que resolver essa situacao vou postar aqui como gerei o cliente (se funcionar depois que eles recriarem o servico deles, claro)

[]'s

Foi exatamente este argumento que utilizei com meu fornecedor, que o serviço disponibilizado por eles não é ‘integrável’ com nenhuma outra tecnologia além da deles.
Até pedi pra me mostrarem um cliente que consumisse o serviço com outra tecnologia além de Delphi.

[quote=Rafael Nunes][quote=rbamartins]
E eh isso que estou argumentando com eles agora, q o servico deles n eh interoperavel.

Entao eh isso, acho que cheguei no ponto que eu queria para argumentar fortemente com eles.
[/quote]

Foi exatamente este argumento que utilizei com meu fornecedor, que o serviço disponibilizado por eles não é ‘integrável’ com nenhuma outra tecnologia além da deles.
Até pedi pra me mostrarem um cliente que consumisse o serviço com outra tecnologia além de Delphi.

[/quote]

É isso, estou passando a questão para eles e ver o que vão decidir.

Abraços e valeu pela discussão.

O bom é que conseguimos chegar a um ponto em comum.

Só para constar.

Realmente, criar o cliente de um serviço feito em Delphi não foi possível, pelos problemas relatados neste post.
A solução que encontramos foi a que meu fornecedo criou o serviço em .NET para que eu pudesse consumi-lo em JAVA.

Abraços

[quote=rbamartins]Só para constar.

Realmente, criar o cliente de um serviço feito em Delphi não foi possível, pelos problemas relatados neste post.
A solução que encontramos foi a que meu fornecedo criou o serviço em .NET para que eu pudesse consumi-lo em JAVA.

Abraços[/quote]

Através do Delphi mesmo ele fez essa geração?
Ou utilizou o Visual Studio e o framework .NET?

[quote=Rafael Nunes][quote=rbamartins]Só para constar.

Realmente, criar o cliente de um serviço feito em Delphi não foi possível, pelos problemas relatados neste post.
A solução que encontramos foi a que meu fornecedo criou o serviço em .NET para que eu pudesse consumi-lo em JAVA.

Abraços[/quote]

Através do Delphi mesmo ele fez essa geração?
Ou utilizou o Visual Studio e o framework .NET?[/quote]

Opa amigo…

ele usou o visual studio mesmo.

Me informaram que tinha como no Delphi alterar a configuração para que se alterasse o padrão de geração dos schemas do serviço para que atendesse ao WS-I (usado pelo JAVA e .NET), mas parece que não souberam fazer.
(se alguém tiver alguma informação sobre isso é bom postar para divulgar esse conhecimento)

Abraços