目录
1.WebService简介
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
"网络服务"(Web Service)的本质,就是通过网络调用其他网站的资源。
2.WebService三要素
WebService的三要素是:
SOAP (Simple Object Access Protocol):简易对象访问协议,soap用来描述传递信息的格式。
WSDL (WebServices Description Language):Web服务描述语言,用来描述如何访问具体的接口。
UDDI (Universal Description Discovery and Integration):通用描述、发现及整合,用来管理、分发、查询webService。
3.代码
在eclipse下新建一个web项目
3.1服务端
package com.fengling.webservice;
//包不要引用错了
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
//注解@WebService不能少
@WebService
public class SayHello {
//该方法为客户端调用的方法,方法名任意
public String say(String name){
return "Hello " + name + " , this is SayHelloService !" ;
}
public static void main(String[] args) {
//第一个参数是访问时的url,9091是任意一个不占用的端口
Endpoint.publish("http://localhost:9091/Service/SayHello", new SayHello());
System.out.println("service success !");
}
}
3.2dos生成配置文件
wsimport -s E:\SunnyWen\Data\Java_web\WebServiceDemo\src -p org.sunny.client.config -keep http://localhost:9091/Service/SayHello?wsdl
wsimport -s 服务端src所在的路径 -p 成的类所在的包 -keep 服务端发布的链接 ?wsdl
-s 后面的是你项目src所在的路径
-p 后面的是你通过该命令生成的类所在的包
-keep 表示导出webservice的class文件时是否也导出源代码java文件.
-verbose表示详细信息。
-d 表示输出的目录,目录必须事先存在,否则导出失败。
3.3客户端
package com.fengling.webserviceclient;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebServiceClient;
import com.fengling.config.SayHello;
import com.fengling.config.SayHelloService;
@WebServiceClient
public class Client {
public static void main(String[] args) {
//方法一
try {
URL url = new URL("http://localhost:9091/Service/SayHello?wsdl");
QName qname = new QName("http://webservice.fengling.com/","SayHelloService");
Service service = Service.create(url,qname);
SayHello port = service.getPort(SayHello.class);
String result = port.say("ai");
System.out.println(result);
} catch (MalformedURLException e) {
e.printStackTrace();
}
//方法二
SayHello sayHello = new SayHelloService().getSayHelloPort();
String result = sayHello.say("Sunn");
System.out.println(result);
}
}
参考文章: