WebService个人学习记录

来源:互联网 发布:乐乎公寓 编辑:程序博客网 时间:2024/04/29 20:57

Webservice定义

概念

SOAP协议:Simple Object Access Protocal 简单对象访问协议

WSDL:WebService描述语言,使用XML语言,人机可读。

UDDI:统一发现、发布和集成协议。企业可以使用它对WebService进行注册和搜索。

一般WebService分两种

   REST式,基于HTTP协议;

   RPC式,基于SOAP协议,SOAP也是基于HTTP传输。狭义上的WebService是指基于SOAP协议的。


示例

   HelloWorld WebService

   Server端  发布WebService

package webservice.server;import javax.jws.WebService;import javax.xml.ws.Endpoint;@WebServicepublic class Hello {public String sayHello(String name){return "hello "+name;}/** * @param args */public static void main(String[] args) {Endpoint.publish("http://localhost:8080/webservice.server.Hello", new Hello());System.out.println("Hello WebService has been published!");}}

操作:运行main方法,打印”Hello WebService has been published!“,成功对外发布WebService。

说明:Http信息为 http://(地址):端口/包名+类名,(其实对外发布http地址可以任意定制,用上述方式命名是为了方便描述类信息)

客户端

   在命令行输入命令

wsimport -p [包名] -keep [发布的服务地址?wsdl]

生成客户端代码,如生成本例的客户端代码

wsimport -p webservice.client -keep http://localhost:8080/webservice.server.Hello?wsdl

会在文件夹webservice/client下生成代码及编译文件,文件结构为

+webservice

   +client

      Hello.java(接口,不是server端的Hello.java)

      HelloService.java

      ObjectFactory.java

      package-info.java

      SayHello.java

      SayHelloResponse.java

利用这些生成的客户端代码,就可以调用这个WebService服务了。


调用服务

package webservice.client;public class HelloClient {public static void main(String[] args) {Hello hello = new HelloService().getHelloPort();String info = hello.sayHello("webservice!");System.out.println(info);}}

输出:hello webservice!


参考资料

http://www.360doc.com/content/11/1104/16/1073512_161674938.shtml

原创粉丝点击