Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。这使得同一个项目可以调用已经开发好的不同语言的类库。实现代码接口的重用。
JAVA自1.5版本之后就嵌入了WebService的API,无需使用第三方的类库就可以创建自己的WebService服务。
下面我们做一个发布一个简单的WebService服务。
1、创建WebService的EndPoint接口
IMyService.java
package com.smile.service;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* @author Loach.Zhang
* SEI service Endpoint interface
*/
@WebService()
//下边这行注解在JDK1.6之前的版本中是需要的。升级到JDK1.7之后就可以不用这个注解
//在JDK1.6之前的版本中 对于int型的参数支持也是有问题的。升级到1.7之后就没有问题了。
//@SOAPBinding(style = SOAPBinding.Style.RPC,parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public interface IMyService {
@WebResult(name="addResult")
public int add(@WebParam(name="a")int a,@WebParam(name="b")int b);
}
2、创建WebService接口实现类。(上面的接口不是必须的。只是为了抽象。)
MyServiceImpl.java
package com.smile.service;
import javax.jws.WebService;
/**
* @author Loach.Zhang
* SIB service implements bean
*
*/
@WebService(endpointInterface="com.smile.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;
}
}
3、发布我们的WebService服务
MyServer.java
package com.smile.service;
import javax.xml.ws.Endpoint;
public class MyServer {
public static void main(String[] args) {
String address = "http://localhost:8889/ns";
Endpoint.publish(address, new MyServiceImpl());
}
}
然后我们运行MyServer.java就可以把我们的WebService服务启动起来了。
在浏览器访问可以得到结果:
我们可以在Eclipse的Web Services Explorer中打开这个web服务。可以在a、b两个参数中输入值,来看看计算结果。
这样一个简单的WebService服务就搭建好了。