Webservice(实践)——入门实例

  JDK1.6以后自带Webservice服务,因此这篇我们先通过一种简单的,基于代码优先的方式来理解一下Webservice

一、什么是Webservice?

  Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。(摘自百度百科!

  看其描述:一句话归纳一下,开发分布式的互操作的应用程序!而且这种程序不关乎平台,主要用来实现异构系统交互!

二、实例

1、提供接口

  

<span style="font-size:18px;">IMyservice:
		import javax.jws.WebService;
		
		@WebService
		public interface IMyservice {
			
			public int add(int a, int b);
		
			public int minus(int a, int b);
		}</span>


2、提供实现类


Myservice:
		import javax.jws.WebService;
		@WebService(endpointInterface="com.tgb.service.IMyservice")
		public class Myservice implements IMyservice {
			@Override
			public int add(int a, int b) {
				System.out.println("a+b="+a+b);
				return a+b;
			}
			@Override
			public int minus(int a, int b) {
				System.out.println("a-b="+(a-b));
				return a-b;
			}
		}


3、发布服务


	<span style="font-size:18px;">	public class Myserver {
			public static void main(String[] args) {
				String address="http://localhost:6666/ns";
				Endpoint.publish(address, new Myservice());
			}
	}</span>



4、查看服务




ps:Webservice的核心——wsdl!都在上图中(types,message,porttype,binding,service (没截出来))这就是wsdl的五大核心内容!




5、客户端调用




import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class TestClient {
	public static void main(String[] args) {
		try {
			//webservice服务的发布路径
			URL url=new URL("http://localhost:6666/ns?wsdl");
			//发布的服务的名称
			QName qname=new QName("http://service.tgb.com/", "MyserviceService");
			//获取服务
			Service service=Service.create(url, qname);
			IMyservice myservice=service.getPort(IMyservice.class);
			System.err.println(myservice.add(12, 22));
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}

服务端效果:


 由于实现类那里写的有点问题,打印的成字符串了!所以服务端出的结果不太理想,将就一下吧;可以修改一下实现类!

客户端效果:





PS这里是“伪客户端”,理论上来说,应该模拟另一个java项目或程序,但是这里没有通过ws-import导出Webservice服务,因此这里就模拟在了同一个项目中!主要目的在于宏观上了解一下Webservice的相关内容


三、未完待续

  这里只是通过JDK自带的注解简单实现了一下Webservice的大体流程和整体印象!至于其核心,WSDL以及具体的完整实例,后续博客继续!【提示:这是代码优先,即先提供接口与服务,然后发布成wsdl;如果基于契约优先,我们需要先编写wsdl然后在导出服务!




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值