Java Web 服务: Metro 简介
2010-01-08 00:00:00 来源:WEB开发网从结构上讲,两种栈在处理请求和响应时都使用处理器。Axis2 以这种处理器方法为基础实现模块:基本 SOAP 消息交换的可插拔扩展,用于以高度可配置的方式实现 WS-* 技术。Metro 支持多种实现处理器的 WS-* 技术,但是这些技术都被集成到 Metro 引擎,而不是作为可分离组件。Metro 使用的集成方法不如 Axis2 模块灵活,但是在配置和使用 WS-* 扩展方面有一些优势。
在客户端代码如何使用 WSDL 服务定义方面,这两种栈之间也有不同。Axis2 主要将 WSDL 服务定义用于客户端代码生成,从 WSDL 中提取服务定义信息,并生成代码,以在运行时构造匹配的 Axis2 客户端配置(不过也可以在运行时解析 WSDL 定义)。JAX-WS 2.x,当然还有 Metro,在运行时都需要 WSDL 服务定义,以便构建服务定义。在运行时使用 WSDL 会增加启动开销 — 不过仅限于第一次服务调用 — 没有任何明显的优点。
在服务器端也有不同之处。对于常见的 HTTP 传输,Axis2 通常作为单独的 Web 应用程序(一个 WAR 程序),另外还有任意数量的服务被部署到该 Axis2 Web 应用程序(不过也可以将它打包到应用程序 WAR 中)。可以通过 Web 页面上传部署服务,也可以通过直接将 Axis2 服务 AAR 文件拖放到扩展的 Axis2 Web 应用程序的适当目录中来部署服务。通常,在构建时,Axis2 从 WSDL 服务定义生成各个服务的配置信息,然后将其包括在服务 AAR 文件中。标准的 Axis2 Web 应用程序还通过 Web 页面提供多种监视和控制工具。
相反,Metro 要求为每个 Web 服务应用程序构建单独的 WAR 文件,而 Metro 库 JAR 文件要么包括在 WAR 中,要么包含在类中(作为 HTTP 服务器的一部分),WAR 中还有一个 WEB-INF/web.xml 文件,该文件引用服务和 Metro servlet。当单独使用 Metro 时,还需要创建一个 sun-jaxws.xml 配置文件,该文件提供关于服务配置的附加信息。这些配置文件中的信息与实际 Web 服务类中的 JAX-WS 注释相结合,一同为服务配置 Metro。由于 Metro 被设计为以这种嵌入式的方式使用,所以不提供任何直接监视或控制的工具。
更多精彩
赞助商链接