Erro InaccessibleWSDLException do cliente gerado SOAP em JAVA
Estamos trabalhando com o wsdl do provedor de serviços, que não pode ser descoberto por motivos de segurança, e eles fornecem um monte de arquivos, incluindo wsdl, xsd etc. Por esse motivo, fizemos o seguinte:
Geramos um cliente de serviço da web usando o formulário netbean 8.0local da área de trabalho (arquivo local)Usando o código do cliente gerado, chamamos a API usando o seguinte códigoURL url = new URL("http://serverip:port/payment/services/MgrService");
MgrService svc = new MgrService(url);
Response response = svc.getMgrServicePort().apiRequest(request);
mas recebendo essas exceções
com.sun.xml.internal.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException.
java.io.IOException: Server returned HTTP response code: 500 for URL: http://serviceip:port/payment/services/MgrService
java.io.IOException: Server returned HTTP response code: 500 for URL: http://serviceip:port/payment/services/MgrService?wsdl
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:260)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:231)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:194)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:163)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:348)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:306)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:215)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:196)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:192)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl,.java:104)
at javax.xml.ws.Service.<init>(Service.java:77)
Por Wireshark, notamos que está chamando ummétodo get sem corpo de sabão, onde deve chamar apenasmétodo post . Testamos a API usando soapUI, o serviço está ok. Também estamos obtendo respostas bem-sucedidas usando a solicitação de sabão xml bruto.
É possível trabalhar comcliente gerado ambos paraJAX-WS e Spring WS quando o WSDL não é detectável? ou só funciona comJAX-WSarquivo wsdl. Nesse caso, precisamos editar o wsdl? ou alguma outra abordagem