2009-10-16 20 views
0

我最近编写了一些数据访问方法(普通的旧Java),它们为请求对象和结果数据对象使用不可变对象。我喜欢不可变的对象,因为它们避免了我在过去人们试图改变和重用对象时看到的客户端代码中出现的大量混淆。Web服务生成和JavaBeans有什么关系?

无论如何,这是几个月前。现在,一位同事在某些Web服务生成方面遇到了麻烦(尝试公开我的方法),这些东西都希望到处都是JavaBean。

我的问题是:web服务的东西生成的东西总是要求使用JavaBeans?有另一种方法吗?

回答

1

大多数Web服务框架都为您提供某种方式来为类型提供自定义序列化器/反序列化器。这听起来就是你需要的。

如果不清楚为什么这是必要的,那是因为框架需要知道如何将Java类转换为XML,反之亦然。如果遵循命名策略,序列化和反序列化JavaBeans(具有getset属性的类)很容易,但您也应该能够为不遵循该Bean模式的类提供自定义类型序列化程序。

1

Web服务开发有两种通用方法:自上而下和自下而上。

在自上而下的方法中,Web服务基于WSDL和XML Schema Definition(XSD)文件中定义的Web服务接口和XML类型。开发人员首先通过创建WSDL文件来设计Web服务的实现。从这个框架中可以创建Java类,开发人员可以添加所需的代码。这个框架实现用作与业务逻辑的接口。此过程也是J2EE标准之一 - 基于JAX-RPC的Web服务API,它定义了Java类和XML类型之间的标准映射。

在自底向上的方法中,基于Java bean或EJB中的现有业务逻辑创建Web服务。生成一个WSDL文件来描述生成的Web服务接口。似乎你的同事正在使用这种方法。

我会推荐一种自上而下的方法,而不是一种底部方法,因为您可以对接口定义和命名进行更多的控制。同样你的同事可以通过工具生成的骨架接口使用你现有的类。