WebService个人学习记录——Hello WebService

Webservice定义:http://baike.baidu.com/view/67105.htm?fromId=837392

概念

SOAP协议:SimpleObjectAccessProtocal简单对象访问协议

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

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

一般WebService分两种

REST式,基于HTTP协议;

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

示例HelloWorldWebService

Server端发布WebService

package webservice.server;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public 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方法,打印”HelloWebServicehasbeenpublished!“,成功对外发布WebService。

客户端

在命令行输入命令,生成客户端代码。命令形式如下

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

如生成本例的客户端代码,会在文件夹webservice/client下生成代码及编译文件。命令如下

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

生成的文件结构为

引用
+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);
	}

}

输出:hellowebservice!

WebService调用成功。

参考资料

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

相关推荐