Estou com problemas na geração das Classes no NetBeans a partir do WSDL da Farmácia Popular.
Endereço do WSDL:
https://200.214.130.55:9443/farmaciapopular/services/ServicoSolicitacaoWS?wsdl
No NetBeans, utilizo a opção: Cliente para serviço Web, passo o endereço acima e ao executar retorna uma janela com o erro:
Cliente de serviços Web não pôde ser criado pelo utilitário JAXWS:wsimport.
Motivo: undefined simple or complex type ‘soapenc:Array’
O erro ainda diz que pode ter acontecido um problema na criação por um conflito de nomes de classes geradas.
É possível também, segundo o erro, a personalização do WSDL porém eu não sei como fazer isso.
Alguém poderia me ajudar, por favor?
Obrigado.
:arrow:
Olá amigo para vc gerar as classes do client é simples veja:
no MSDOS mesmo vc usa o wsimport:
c:\>wsimport -keep -p br.com.farmaciapopular.ws.client https://200.214.130.55:94
farmaciapopular/services/ServicoSolicitacaoWS?wsdl
Ele vai gerar na raiz c: uma pasta "br".
Essa pasta dentro vc apaga todos os .class e depois copia a cola essa pasta no seu projeto java dentro da pasta src.
depois é soh fazer uso das interfaces e types criados para acessar o web service.
Quem acessa o service é a api gerada, vc soh usa a interfaces e types normalmente ok!
fica a dica, abraço.
Ola, obrigado pela ajuda, porém executei como informado:
Sem o c:> que apresentou problemas, então apontei para a raiz e executei conforme informado anteriormente.
O erro apresentado no DOS foi:
[ERROR] java.security.cert.CertificateException: No Subject alternative names present
Failed to read the WSDL document: http://200.214.130.55:9443/farmaciapopular/services/ServicoSolicitacaoWs?wsdl, because
- cold not find the document;
- the document cold not be read;
- the root element of the document is not wsdl:definitions
O que está de errado, seria o endereço do WSDL?
Estou usando conforme abaixo:
https://200.214.130.55:9443/farmaciapopular/services/ServicoSolicitacaoWS?wsdl
Ola,
agradeço pela ajuda tá!
Re-digitei o comando no DOS, creio que havia erro de digitação.
O erro ainda continua, porém mudou.
Erro atual:
[ERROR] Connection timed out: connect
Seria um problema no servidor ou no WebService?
É um erro de segurança de acesso;
Se vc executar a url no navegador, vc vai ser informado que o certificado do servidor não é confiável, mas se vc confirmaro acesso no navegador vc vai ver o wsdl.
Voce pode pegar o wsdl no navegador e salvar em uma pasta e executar o comando apontando para o wsdl na pasta que vc salvou.
Provavelmente esse servidor é de homologação, por isso não possui um certificado válido.
Salve o wsdl pelo firefox e execute o comando de novo. OK!
veja esse link: http://edermag.blogspot.com.br/2010/09/consumir-webservice-com-autenticacao.html
fica a dica.
Paulo, sinceramente eu não faço ideia de onde está o problema, se é na conexão de Internet aqui, eu acho que possuí um Firewall, não sei se isso influencia em algo.
Bom de qualquer jeito, abri pelo FireFox porém sem sucesso.
Salvei como .txt, como .xml, como .wsdl mas mesmo assim não consigo gerar as classes.
Eu fico imaginando se está dando esse trabalho todo pra conseguir essas classes, imagina para implementar a comunicação com o WS (risos).
Deixa eu te perguntar, tentei pelo NetBeans, lá tem uma opção de “Cliente para serviço Web”, onde você aponta uma URL que é o caminho do WSDL.
Tentei por lá também, porém da um erro estranho, como relatado abaixo:
Ele pede para aceitar o certificado do site, aceitando então ele retorna um erro:
Cliente de serviços Web não pôde ser criado pelo utilitário JAXWS:wsimport.
Motivo: undefined simple or complex type “soapenc:Array”.
Tenso a coisa aqui.
De qualquer forma, muito obrigado pela ajuda.
Abraço!
Oi marcos, relaxa que as vezes isso acontece.
Vc esta tentando acessar um wsdl em uma url que esta sob https, veja vc mesmo, isso indica que o servidor usará um certificado na comunicação do serviço.
sendo assim, para vc gerar o client vc precisaria mesmo salvar o wsdl e apontar o wsimpor para ele na sua maquina local, na pasta onde foi salvo.
Tente obter novamente o wsdl aqui, mas no momento retorna erro do axis na url informada anteriormente, provavelmente é problema no servidor, pois deve ser endereço de testes.
Mas vai tentando obter o wsdl, se conseguir com o firefox, vc salva o conteudo como farmacia.wsdl e me manda por email, vou tentar gerar o client pra vc e te explico depois.
Abração.