Как получить доступ к веб-сервисам в клиентском приложении?

1

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

Вот почему я сгенерировал .java- файлы, используя d:> wsimport -keep -s src Wsdl url, и я написал Client Class, чтобы получить детали. Но здесь я получил исключение. как я могу это преодолеть.

Ниже приведен мой класс UserName.java. Используя этот класс, я сгенерировал wsdl файл.

public class UserName implements UserId {
String result = null;

@Override
public String getName(String name) {
    try {

        String name1 = name;

        JAXBContext jaxbContext = JAXBContext.newInstance(User.class);

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
        File file = new File("D:/MyWorkspace/JaxWsWithxml/User.xml");
        User userUnmarshal = (User) jaxbUnmarshaller.unmarshal(file);

        List<User> list = userUnmarshal.getUser();
        for (User user : list)
            if (user.getName().equals(name1)) {
                result = user.getName();
                System.out.println("Id " + " " + user.getId() + "  "+ user.getName());

            }

    } catch (JAXBException e) {
        e.printStackTrace();
    }
    return result;
}
}

Ниже представлен интерфейс UserId.java

 public interface UserId
{
 public String getName(String name);
}

Ниже находится клиент.java. В другом приложении я получил .java- файлы с использованием файла WSDL

public class Client {

public static void main(String[] args) {
    // TODO Auto-generated method stub
String name1="raj";
int id;
String a=name(name1);
System.out.println("Name is"+a);

}
public static String name(String name1)
{
    UserNameService us=new UserNameService();
    UserName userNmae=us.getUserName();
    return userNmae.getName(name1);
}

 }

Здесь UserNameService - это имя службы в имени WSDL и имени порта UserName в файле WSDL.

Мое исключение:

Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException:
HTTP transport error: java.net.ConnectException: Connection refused: connect
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(Unknown Source)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source)

Это мое исключение, как я могу решить Спасибо...

Теги:
soap
web-services
jaxb
wsdl

2 ответа

0
Лучший ответ

Ошибка HTTP-транспорта означает, что ваше приложение не работает в настоящее время. Сначала сначала нужно запустить приложение веб-сервиса, а затем выполнить свой код клиента. Это будет хорошо работать. В вашем коде не требуется никаких изменений.

1

Сначала вам нужно проверить, работает ли развернутая служба нормально. Поскольку вы столкнулись с отключенным отказом подключения, я думаю, что сервер работает неправильно. Или ваше клиентское приложение не может получить доступ к URL-адресу веб-службы. Поскольку у вас уже есть WSDL, вы также можете вызвать веб-сервис, напрямую ссылаясь на WSDL из java-кода/JAX-WS Client.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню