原生WebService

目录

1.WebService简介

2.WebService三要素

3.代码

3.1服务端

3.2dos生成配置文件

3.3客户端



 

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);
	}
}

参考文章:

https://www.cnblogs.com/FlyingPuPu/p/5335138.html

猜你喜欢

转载自blog.csdn.net/qq_42035966/article/details/82666043