Problema com publicação de Web Service usando JAX-WS
12 respostas
T
thiagomelo
Pessoal,
precisei publicar um webservice e depois de uma pesquisa na web verifiquei que JAX-WS seria mais fácil. Pois bem fiz a implementação da classes e até então tudo bem. Fiz um teste importando o wsdl e também consegui testar meu webservice. O problema é qdo outra linguagem, além de java, tenta importar o WSDL. Ele acusa tipos inválidos , inexistentes constando no WSDL. Eu dei uma olhadinha no wsdl e realmente ta estranho. Alguém sabe dizer se realmente o JAX-WS só é compatível com java?
OBS: Se vcs notarem no WSDL ele declara um parametro do tipo:transmitirXml que no caso é o nome do meu método publicado…
Minha Classe:
@WebService
public class TransmissorWS
{
@WebMethodpublicvoidtransmitirXml(@WebParam(name="idMensagem")longidMensagem){//TODO: Código de transmissão para implementar...}
Não, ele nao é apenas pra java nao, se nao nao teria muito sentido, essa semana mesmo fiz um webService no Netbeans com JAX-WS, e depois fiz um cliente no Visual Studio, fufou legal.
Sobre o xml estar estranho abra a seguinte pagina e veras o resto das definições:
Realmente os tipos estão definidos nesse schema que vc colocou o link. Mas vc não sabe de nenhum parâmetro que eu possa definir em algum lugar que faça ele descrever os tipos no próprio documento?? pq o problema que eu estou enfrentando é justamente esse, como ele esta em um documento separado algumas linguagens estão com problemas na hora de fazer a importação desse WSDL.
fredferrao
Que linguagens sao essas? Eu ja fiz clientes em dotNet e até mesmo Delphi sem problemas.
Bom isso é SOAP, é um padrao, e a descrição ta em xsd, agora se essas linguagem nao suportarem, ai fica dificil.
T
thiagomelo
pronto, estou tentando criar esse cliente em Delphi 7. Ele consegue importar, mas fica dando erro pq ele não reconhece os tipos que ficam descritos naquela parte do arquivo entendesse? como se ele não enxergasse o include…
fredferrao
Bom eu criei na epoca no JAX-WS 2.0 se nao me engano, no 2.1 nunca testei, mas tipo, o Delphi consegue concluir a importação e da erro depois na hora de usar ou ja da pau na hora de importar o wsdl??
O que lembro é que la no delphi é bem escroto a maneira de usar e setar os parametros, ele tipo cria uns Talgumacoisa da vida, faz tempo que fiz, até eu entender como ele tinha feito levou um tempinho.
T
thiagomelo
ele consegue importar o WSDL, mas ele faz um comentario justamente dizendo que não conseguiu ler alguns tipos que não estavam declarados no documento. Aí no fim das contas ele não consegue compilar entendesse? vou colocar aqui o trecho onde ele diz que não conseguiu ler os tipos…
// ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Borland types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:transmitirXml - “http://utilitarios.cliente/”
// !:transmitirXmlResponse - “http://utilitarios.cliente/”
fredferrao
thiagomelo:
ele consegue importar o WSDL, mas ele faz um comentario justamente dizendo que não conseguiu ler alguns tipos que não estavam declarados no documento. Aí no fim das contas ele não consegue compilar entendesse? vou colocar aqui o trecho onde ele diz que não conseguiu ler os tipos…
// ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Borland types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:transmitirXml - “http://utilitarios.cliente/”
// !:transmitirXmlResponse - “http://utilitarios.cliente/”
É ai ja nao sei, a muito nao mexo com Delphi, mas diga ae, e esse teu webservice?? Nao retorna nada e recebe um long??
T
thiagomelo
É. A princípio ele não vai retornar nada mesmo e recebe um long.
Cara alguma luz???
gulira
thiagomelo:
É. A princípio ele não vai retornar nada mesmo e recebe um long.
Cara alguma luz???
Thiago, estou com o mesmo problema, vc conseguiu resolver?
T
thiagomelo
gulira,
pelo que eu entendi existe umas versões do SOAP, e no caso do parser do Delphi 7, onde fiz o teste anterior, não conseguia ler a versão gerada pelo JAX-WS. Então eu usei o framework axis 1.4 para gerar meu wsdl aí deu tudo certo.
Ou seja, não conseguir resolver tive que pegar um atalho
Thiago Melo.
M
marcio.gugo
fredferrao:
thiagomelo:
ele consegue importar o WSDL, mas ele faz um comentario justamente dizendo que não conseguiu ler alguns tipos que não estavam declarados no documento. Aí no fim das contas ele não consegue compilar entendesse? vou colocar aqui o trecho onde ele diz que não conseguiu ler os tipos…
// ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Borland types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:transmitirXml - “http://utilitarios.cliente/”
// !:transmitirXmlResponse - “http://utilitarios.cliente/”
É ai ja nao sei, a muito nao mexo com Delphi, mas diga ae, e esse teu webservice?? Nao retorna nada e recebe um long??
Estou precisando implementar um webservice cliente em Delphi 7 e estou com o mesmo tipo de problema. Alguém conseguiu uma solução sem ter que utilizar “atalhos” do tipo Axis 1.4?
Obrigado.
Márcio
W
wpsouto
marcio.gugo:
ele consegue importar o WSDL, mas ele faz um comentario justamente dizendo que não conseguiu ler alguns tipos que não estavam declarados no documento. Aí no fim das contas ele não consegue compilar entendesse? vou colocar aqui o trecho onde ele diz que não conseguiu ler os tipos…
// ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Borland types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:transmitirXml - “http://utilitarios.cliente/”
// !:transmitirXmlResponse - “http://utilitarios.cliente/”
Consegui resolver o problema utilize na sua classe java