首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在web服务/客户端之间传递JAXB对象

在web服务/客户端之间传递JAXB对象
EN

Stack Overflow用户
提问于 2012-01-09 03:10:05
回答 1查看 1.7K关注 0票数 0

我正在创建一个系统,它使用两个web服务和一个客户端为旅行社提供接口。有一个航班预订web服务,它将可用航班存储在一个xml文档中(基于模式),并提供检索优惠或预订给定航班的方法。还有一个旅行社服务,它使用机票预订服务和货币转换服务,以便以特定货币向用户提供价格。然后,客户端将使用旅行社服务,以便查看和预订可用航班。

我的问题是将航班信息从航班预订服务获取到旅行社服务,然后再转发给客户。在web服务和客户端中都使用了用于提供列表的模式。包含报价的xml文档在航班预订服务中被解组,成为OffersType的一个对象。我希望将此对象返回给旅行社,以便可以对其执行操作,然后将其返回给客户端。然而,当访问旅行社程序中的方法时,它只返回flightbooking.OffersType,而不能将其转换为本地OffersType。有没有办法做到这一点?或者,我是否需要创建一个使用来自远程OffersType的信息的新OffersType

例如,在航班预订web服务上:

代码语言:javascript
运行
复制
@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;
}

offers是OffersType的一个实例。

然后在旅行社方面:

代码语言:javascript
运行
复制
private OffersType getOffers() {
    OffersType ret = new OffersType();
    flightbooking.FlightBookingWS port = service.getFlightBookingWSPort();
    return port.getOffers();
}

但这显然不起作用,因为返回的对象是flightbooking.OffersType的一个实例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-09 03:34:12

如果你在服务器端和客户端都使用Java,我会在两端都使用Jersey + Jackson。只要模型的两端都有,并且注释正确,您就可以将其从一端传递到另一端。

网上有很多例子,但我想从这个问题开始:How to reuse Jersey's JSON/JAXB for serialization?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8780371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档