快速业务通道

设计与开发JAX-WS 2.0 Web服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
WebMethod Annotation 标注且 exclude 元素设置为 true 的方法外,类中定义的所有公共方法都会映射到 WSDL 操作。@WebMethod Annotation 是可选的,用于对 Web 服务操作进行自定义。除了 exclude 元素外,javax.jws.WebMethod Annotation 还提供 operation name 和 action 元素,用于在 WSDL 文档中自定义操作的 name 属性和 SOAP action 元素。这些属性是可选的;如果未定义,会从类名称派生缺省值。

实现 Web 服务后,需要生成部署服务所需的所有构件,然后将 Web 服务打包为部署构件(通常为 WAR 文件),并将 WAR 文件部署到任何支持 JAX-WS 2.0 规范的兼容服务器上。通常生成的构件是提供基于服务接口将 Java 对象转换为 XML、WSDL 文件和 XSD 模式的功能的类。

出于测试目的,Java 6 绑定了一个轻量级 Web 服务器,可以通过调用简单的 API 调用将 Web 服务发布到该服务器上。接下来我们将了解如何使用此方法测试 Web 服务。

发布服务

生成 JAX-WS 构件

运行 wsgen 工具,以生成订单处理 Web 服务的 JAX-WS 可移植构件。此工具将读取 Web SEI 类,并生成 Web 服务部署和调用所需的所有构件。wsgen 工具生成需要发布的 Web 服务的 WSDL 文件和 XSD 模式。

为了生成 JAX-WS 构件,首先需要编译服务和 Bean 源文件:

打开命令提示符,并进入到 c:\JAXWS-Tutorial目录。

运行以下命令,以编译 Java 文件,并将类文件放入其各自文件夹中:

javac com\ibm\jaxws\tutorial\service\*.java com\ibm\jaxws\tutorial\service\bean\*.java

运行以下命令,以生成 JAX-WS 构件:

wsgen -cp . com.ibm.jaxws.tutorial.service.OrderProcessService -wsdl

wsgen 工具提供了大量的选项,例如,其中提供了 -wsdl 选项,用于生成服务的 WSDL 和模式构件。运行此命令后,应该在 JAXWS-Tutorial 文件夹中看到生成的 OrderProcess.wsdl 和 OrderProcess_schema1.xsd,而且会看到在 com\ibm\jaxws\tutorial\service\jaxws 文件夹中创建了 JAX-WS 构件。

生成了构件后,运行以下 Web 服务发布器客户机,以发布订单处理 Web 服务。

从 c:\JAXWS-Tutorial 文件夹运行以下命令,以编译 OrderWebServicePublisher:

javac com\ibm\jaxws\tutorial\service\publish\OrderWebServicePublisher.java

然后运行以下命令:

java com.ibm.jaxws.tutorial.service.publish.OrderWebServicePublisher

运行 Java 程序后,应该看到以下消息: The Web service is published at http://localhost:8080/OrderProcessWeb/orderprocess. To stop running the Web service, terminate this Java process.

这会将订单 Web 服务发布到 http://localhost:8080/OrderProcessWeb/orderprocess。可以通过显示订单处理 Web 服务生成的 WSDL 来验证 Web 服务是否在运行:

打开浏览器,并导航到 http://localhost:8080/OrderProcessWeb/orderprocess?wsdl。

分析 OrderWebServicePublisher

在分析 WSDL 和模式构件前,让我们分析一下 OrderWebServicePublisher 的代码。清单 3 提供了 OrderWebServicePublisher 客户机的源代码。

清单 3. 用于发布订单处理 Web 服务的代码

package com.ibm.jaxws.tutorial.service.publish; import javax.xml.ws.Endpoint; import com.ibm.jaxws.tutorial.service.OrderProcessService; public class OrderWebServicePublisher {    public static void main(String[] args) {      Endpoint.publish("http://localhost:8080/OrderProcessWeb/orderprocess",          new OrderProcessService());    } }

通过 Endpoint.publish() 方法,可以方便地发布和测试 JAX-WS Web 服务。publish() 接受两个参数:Web 服务的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号