Я работаю над веб-сервисами. Я создал файл 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)
Это мое исключение, как я могу решить Спасибо...
Ошибка HTTP-транспорта означает, что ваше приложение не работает в настоящее время. Сначала сначала нужно запустить приложение веб-сервиса, а затем выполнить свой код клиента. Это будет хорошо работать. В вашем коде не требуется никаких изменений.
Сначала вам нужно проверить, работает ли развернутая служба нормально. Поскольку вы столкнулись с отключенным отказом подключения, я думаю, что сервер работает неправильно. Или ваше клиентское приложение не может получить доступ к URL-адресу веб-службы. Поскольку у вас уже есть WSDL, вы также можете вызвать веб-сервис, напрямую ссылаясь на WSDL из java-кода/JAX-WS Client.