Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。用简单点的话说,就是系统对外的接口!Java同样也内置了对于WebService的支持,以前的Java一般是通过RMI框架实现进程或者服务的通信,现在的webservice更加强大,下面我们就使用一个简单的例子在快速入门webservice.
1. 建立webservice首先需要建立一个服务接口,我们的例子是IMyService,它的意思是将这个接口作为服务公布出去,让其他的类通过通信来访问调用我们这个接口。代码如下
- package com.bird.service;
- import javax.jws.WebService;
- /**
- * 服务端的接口
- * @author Bird
- *
- */
- @WebService
- public interface IMyService {
- public int add(int a, int b);
- public int minus(int a, int b);
- }
注意一下上面,这个接口上面有一个注解,这个注解是非常重要的
2.。建立这个接口的实现类,这个不用多说,很简单,通俗易懂
- package com.bird.service;
- import javax.jws.WebService;
- /**
- * 实现类
- * @author Administrator
- *
- */
- @WebService(endpointInterface="com.bird.service.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;
- }
- }
同样注意,这个实现类上面有一个注解,这个注解内部表明它是某个公开出去的接口或者说是服务的实现类
3.建立服务端,将服务发布出去
- package com.bird.service;
- import javax.xml.ws.Endpoint;
- public class MyService {
- /**
- * 讲服务发布出去
- * @param args
- */
- public static void main(String[] args) {
- String address="http://localhost:8888/ns";
- Endpoint.publish(address, new MyServiceImpl());
- }
- }
这时候我们就可以通过浏览器访问http://localhost:8888/ns来访问我们这个类,看到它的类的描述文件xml了
4.我们还可以写一个客户端,这个客户端通过地址远程访问我们公布出去的服务,然后传给这个服务参数调用这个服务,获取服务的返回值
- package com.bird.service;
- import java.net.URL;
- import javax.xml.namespace.QName;
- import javax.xml.ws.Service;
- public class Client {
- public static void main(String[] args) {
- try {
- URL url = new URL("http://localhost:8888/ns?wsdl");
- QName sname = new QName("http://service.bird.com/","MyServiceImplService");
- Service server = Service.create(url, sname);
- IMyService ms = server.getPort(IMyService.class);
- System.out.println(ms.add(12, 12));
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
这样整体的一个简单的webservice的快速入门案例就写完了,其实webservice 还是非常简单的。