java-клиент wsdl

#java #wsdl #client

#java #wsdl #клиент

Вопрос:

Я создал клиент веб-службы с использованием NetBeans.

Часть кода: …

 mtsvmi.MGWPUBLICFUNCTIONSService service = new mtsvmi.MGWPUBLICFUNCTIONSService();
        mtsvmi.MGWPUBLICFUNCTIONSPortType proxy = (service.getMGWPUBLICFUNCTIONSPort());
        ((BindingProvider)proxy).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username");
        ((BindingProvider)proxy).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password"); 

        QName portQName = new QName("http://xmlns.oracle.com/orawsv/SISTEMA_MOKA/MGW_PUBLIC_FUNCTIONS", "MGW_PUBLIC_FUNCTIONSPort");
        String req = "<INSERT_RECEIVES  xmlns="https://IP:PORT/orawsv/test/SISTEMA_MOKA/MGW_PUBLIC_FUNCTIONS"><parameters>" pingKonteineris "</parameters></INSERT_RECEIVES>";

        try { // Call Web Service Operation
            Dispatch<Source> sourceDispatch = null;
            sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);
            Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req)));
//            System.out.println("---Ans: " result.toString() "---");
        } catch (Exception ex) {
           System.out.println(ex);
        }      
  

дает мне:

com.sun.xml.internal.ws.client.Исключение ClientTransportException: ошибка HTTP-транспорта: java.net.ConnectException: отказано в подключении: подключение

Что я сделал не так? Как мне это исправить? Какая еще информация вам нужна, чтобы помочь мне здесь?

Ответ №1:

Полученное ConnectException вами означает, что вашему приложению не удалось установить сокет-соединение со своей целью. Обычно это означает, что вы указали неправильное имя хоста или порт, или что служба на другом конце не запущена.

Из того, что вы опубликовали, неясно, какая именно строка кода вызвала сбой или по какому адресу была предпринята попытка подключения. Однако я бы рискнул предположить, что это строка, которую вы вызываете sourceDispatch.invoke , и что MGWPUBLICFUNCTIONSService класс отвечает за предоставление адреса.

Я предлагаю вам просмотреть журналы, сообщения об ошибках и / или конфигурацию, чтобы узнать, какой адрес используется и почему не удается установить соединение с этим адресом. Использование telnet для самостоятельного установления соединений может быть очень полезным в предварительном расследовании.

Комментарии:

1. Боюсь, я не могу вам этого сказать — настройки прокси зависят от сети между вами и целью; я не знаю, что такое целевой сервер; и я недостаточно разбираюсь в архитектуре вашего проекта, чтобы знать, где его нужно установить. Но я могу сказать вам, что если вы используете литеральную строку http(s)://<server name>:<port>/orawsv/SISTEMA_MOKA/MGW_PUBLIC_FUNCTIONS в качестве URL-адреса, это ваша проблема прямо здесь, вам нужно будет заменить правильный протокол, хост и порт.

Ответ №2:

Я столкнулся с этой проблемой. и я решил это, изменив в файле .wsld

 <service name="CalculatorService">
    <port binding="tns:CalculatorPortBinding" name="CalculatorPort">
        <soap:address
            location="http://localhost:6060/WebServiceProject/CalculatorPort" />
    </port>
</service>
  

мой номер порта был 8080 и изменен на 6060, который я использую.

может быть, это поможет вам. попробуйте.