Как подключиться к удаленному веб-сервису с использованием WSDL - PullRequest
0 голосов
/ 23 марта 2020

Задача - подключиться к удаленному веб-сервису. Его описание в форме WSDL. Я создаю описание сервиса:

"C:\Program Files (x86)\Java\jdk1.8.0_171\bin\wsimport.exe" -keep http://b2b.soglasie.ru:81/scoring/scoring?wsdl

Затем создаю полученный сервис:

 ScoringService s = new ScoringService();

При инициализации сервиса возникает ошибка:

java.lang.NullPointerException
0 = {StackTraceElement@3701} "javax.xml.ws.Service.<init>(Service.java:112)"
1 = {StackTraceElement@3702} "ru.soglasie.b2b.scoring.ScoringService.<init>(ScoringService.java:38)"

ScoringService

@WebServiceClient(name = "ScoringService", targetNamespace = "http://scoring.b2b.soglasie.ru/", wsdlLocation = "http://b2b.soglasie.ru:81/scoring/scoring?wsdl")
public class ScoringService
    extends Service
{

    private final static URL SCORINGSERVICE_WSDL_LOCATION;
    private final static WebServiceException SCORINGSERVICE_EXCEPTION;
    private final static QName SCORINGSERVICE_QNAME = new QName("http://scoring.b2b.soglasie.ru/", "ScoringService");

    static {
        URL url = null;
        WebServiceException e = null;
        try {
            url = new URL("http://b2b.soglasie.ru:81/scoring/scoring?wsdl");
        } catch (MalformedURLException ex) {
            e = new WebServiceException(ex);
        }
        SCORINGSERVICE_WSDL_LOCATION = url;
        SCORINGSERVICE_EXCEPTION = e;
    }

    public ScoringService() {
        super(__getWsdlLocation(), SCORINGSERVICE_QNAME);
    }

javax.mxl.ws.Service

package javax.xml.ws;

import java.net.URL;
import java.util.Iterator;
import java.util.concurrent.Executor;
import javax.xml.bind.JAXBContext;
import javax.xml.namespace.QName;
import javax.xml.ws.handler.HandlerResolver;
import javax.xml.ws.spi.Provider;
import javax.xml.ws.spi.ServiceDelegate;

public class Service {
    private ServiceDelegate delegate;

    protected Service(URL wsdlDocumentLocation, QName serviceName) {
        this.delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation, serviceName, this.getClass());
    }

Как исправить эту ошибку?

...