webservice接口开发有用到Axis2、XFire、CXF等框架发布通过获取相关的wsdl文件即可实现远程通讯数据交互。
Axis2配合相关的IDE生成服务并发布到服务器上面相当简单和根据选择其中之一的wsdl引擎生成客户端调用java类,感觉类库jar包比较庞大应用起来也比较复杂。
XFire是比较强大的webservice框架,容易与web容器整合,以及spring提供整合支持。
CXF是apache收购XFire后改造产物,功能也相当强大。
而JDK6自带了webservice特性,可以不使用web容器,深感部署之简单,真正的轻量级,可以使你集中尽力解决服务端的相关功能设计与实现。
下面介绍JDK6自带的Webservice特性例子:
IDE:eclipse javaee版
新建一个java工程后,建如下类即可简单实现webservice:
package com.ws;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class Helloword {
public String sayHello() {
return "helloworld";
}
public static void main(String[] args) {
//发布一个WebService
Endpoint.publish("http://localhost:9090/HelloWorld", new Helloword());
}
}
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class Helloword {
public String sayHello() {
return "helloworld";
}
public static void main(String[] args) {
//发布一个WebService
Endpoint.publish("http://localhost:9090/HelloWorld", new Helloword());
}
}
启动main方法即可发布一个webservice服务,通过浏览器输入http://localhost:9090/Helloword?wsdl即可访问。
注:HelloWorld是一个普通类,只是在类的前面第4行加了注解
@WebService ,发布是在第11行,http://localhost:9090/HelloWorld是发布服务地址,其中new HelloWorld()是服务类。不过类的包名必须定义,否则会报错。
在实际项目开发中可以服务地址从硬编码中抽离处理,写到配置文件或者数据库中方便维护管理,修改地址从前服务即可。