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 还是非常简单的。