Я создаю систему, которая использует два веб-сервиса и клиента для предоставления интерфейса для турагента.Существует веб-служба бронирования рейсов, которая хранит доступные рейсы в документе XML (на основе схемы) и предоставляет методы для получения предложений или бронирования данного рейса.Существует также служба турагента, которая использует услугу бронирования рейса и услугу конвертации валюты, чтобы предоставить пользователю цены в определенной валюте.Затем клиент воспользуется услугой турагентства для просмотра и бронирования доступных рейсов.
Моя проблема заключается в получении информации о рейсе из службы бронирования авиабилетов в службу турагентства и далее в адрес клиента.Схема, используемая для списка предложений, используется как в веб-сервисах, так и в клиенте.XML-документ, содержащий предложения, распаковывается в службе бронирования авиабилетов и становится объектом OffersType
.Я хочу вернуть этот объект в туристическое агентство, чтобы на нем можно было выполнить какие-то операции, а затем он вернулся к клиенту.Однако при доступе к методу в программе туристического агентства он возвращает только flightbooking.OffersType
, который нельзя преобразовать в локальный OffersType
.Есть ли способ сделать это?Или мне нужно создать новый OffersType
, который использует информацию с пульта OffersType
?
Так, например, на веб-сервисе бронирования авиабилетов:
@WebMethod(operationName = "getOffers")
public OffersType getOffers() {
try {
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(this.getClass().getPackage().getName());
javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
offers = (OffersType) unmarshaller.unmarshal(new java.io.File("\\resources\\CurrentOffers.xml")); //NOI18N
} catch (javax.xml.bind.JAXBException ex) {
// XXXTODO Handle exception
java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
}
return offers;
}
с предложениямибудучи экземпляром OffersType
.
Тогда на стороне туристического агентства:
private OffersType getOffers() {
OffersType ret = new OffersType();
flightbooking.FlightBookingWS port = service.getFlightBookingWSPort();
return port.getOffers();
}
, но, очевидно, это не работает, так как возвращаемый объект является экземпляром flightbooking.OffersType
.