技术开发 频道

Web服务构建Struts应用程序



发布者:展示 Web 服务

  在 WSManager 类中实现的每一个公共方法都将作为一种 Web 服务发布出来。换句话说,您要为这些类发布一种 Web 服务描述 。Web 服务描述是由服务的 Web 服务描述语言(Web Services Description Language,WSDL)描述与由它所引用的任何 XML schema 所组成。(WSDL 是描述服务的标准语言。)

  您可以在公共注册中心或在企业内的公司注册表上发布 Web 服务描述。同样,你也可以发布由WEB 服务定义的XML Schema到同一个公共的或者公司专有的(UDDI)注册中心上。 Java Web 服务客户端采用 JAXR 应用编程接口来查询公司或公共注册表上的服务描述。

  如果您的客户都是专有的合作伙伴,那您就不需要使用注册表了。不过,您可以在您的应用程序的 Web 层或者在具备适当安全保护的熟知位置来发布您的 Web 服务描述( WSDL 和 XML schemas)。例如,假想有一个转售者的客户应用程序,他与某个特殊厂商有协定。客户应用程序已经在厂商开发时间中静态地 与 Web 服务结合在一起了。只有授权的团体才可以查询 XML schema 或者从 Web 层检索服务描述来生成客户端代码。您应该在 WSManager 层中执行有效客户的身份验证和授权使用。

订购者:使用 Web 服务

  应用程序可以利用在公共注册表或者企业内部中已存的 Web 服务。 WSManager 有解析必要的 WSDL 文件的方法并且调用相关的操作返回一个值。Struts 控制器在 WSManager 类中调用相关方法来使用特定的 Web 服务。数据作为预定义的数据访问对象在 WSManager 和 Struts 控制器之间来回传送。访问 Web 服务时所发生的所有异常都将在 WSManager 中列举出来并且传回到 Struts ActionController.

  服务请求者要通过使用服务代理来搜索 Web 服务;如果找到它所想要使用的 Web 服务,为使用这个服务它将与服务提供者建立一个合约,然后才能调用服务中的业务。

  WSManager 使用 WSDL 文档、服务器名字、端口名、操作名以及包括 Java 原始类型、Java 数组、Java 对象 或者与 XML 文档等所有必需的请求参数一起来订购一个 Web 服务。

  如果是在 UDDI 注册表中发布目标 Web 服务,那么所有基于 Struts 的应用程序都能使用像 XMethods (请参阅参考资料)这样的代理服务来订购它。在执行完所请求的操作后,供应者 Web 服务返回所期望的值。 WSManager 可以更改返回值使得它与应用程序所期待的 schema 相匹配;它也可以在应用程序要求基础上修改结果。从 WSManager 收到结果以后,Struts ActionController 能够处理结果并传送给相关视图,或者还能调用相关的模型服务来完成深层处理。

  错误处理

  所有的错误都是在 WSManager 层中处理的;这就消除了不必要的服务器开销。如果模型服务是当作 EJB 层来实现的,那么其性能会得到非常显著地增强。

  在充当供应者角色时, WSManager 抛出所有如 SOAPFaultException 这样的异常。它还可以检查新来的请求并且抛出所有缺少强制字段的异常。您可以创建一个类来跟踪并在数据仓库中记录这些错误,以后可以做作参考。

  在充当订购者角色时, WSManager 捕捉到由服务供应者所抛出的所有 SOAP 异常并且将它们更改为 WSManager 所要求的格式。您可以记录下所抛出的错误作为以后参考之用。如果需要,那么在需要时候也能够校验出响应值并且作为异常抛出。您可以创建一个类来记录这些异常,作为以后参考之用。 WSManager 能够验证响应值而且可以作为一个异常将它抛出。

  审核

  在充当供应者角色时, WSManager 可以记录下详细信息,将来可以做为审核。使用这些信息有很多用途,像:

  ☆ 在所接收到的大量采样点基础上登记客户端。

  ☆ 收集数据用作市场目的。

  ☆ 决定应用程序是否需要更新。

  ☆ 鉴别并捕捉非法用户。

0
相关文章