WebService入门课程(01)

问题1:WebService是用来干什么的?

答:webservice是实现异构平台交互的一种技术


问题2:哪些框架可以帮助我们实现webserbice?

答:CXF Axis Metro这些框架可以帮助我们实现webservice,JAVA自己也可以帮我们实现webservice


问题3:解释下SEI和SIB两个术语

SEI:Service Endpoint Interface 服务端接口

SBI:Service implemetion Bean


问题4:如何用JAVA实现webservice?

1.1、创建接口
1.2、创建实现类
1.3、创建服务类
1.4、确立服务在网上发布的地址
1.2、公布服务

package test.my;

import javax.jws.WebService;

@WebService
public interface IMyService {
	public int add(int a,int b);
	public int minus(int a,int b);
}



package test.my;

import javax.jws.WebService;

@WebService(endpointInterface="test.my.IMyService")
public class MyServiceImpl 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;
	}

}

package test.my;

import javax.xml.ws.Endpoint;

public class MyServer {
	/**
	 * 确定对外公布的服务地址
	 */
	
	public static void main(String[] args) {
		String address = "http://localhost:6666/ns";
		Endpoint.publish(address, new MyServiceImpl());
	}
}


问题5如何调用

package test.my;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class TestCilent {

	
	public static void main(String[] args) {
		URL url;
		try {
			url = new URL("http://localhost:6666/ns?wsdl");
		
			QName sname = new QName("http://my.test/","MyServiceImplService");
			Service service = Service.create(url, sname);
			IMyService ms = service.getPort(IMyService.class);
			System.out.println(ms.add(12,33));
		} 
		catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}

}

class test.my.MyServiceImpl has neither @WebSerivce nor @WebServiceProvider annotation
没有@WebSerivce 也没有@WebServiceProvider注解

这个告诉我们需要为我们的服务接口和实现类写上@WebSerivce注解

下节预留问题:这里客户端调用依赖于服务器端接口,这样肯定和实际不符合,实际上客户端是没有服务端这些类和接口的,那么怎么办呢,请看第二节


你可能感兴趣的:(WebService入门课程(01))